HTTP


HTTP (Hypertext Transfer Protocol) ist ein Protokoll, das zur Übertragung von Daten in Netzwerken verwendet wird. HTTP ist ein allgemein gültiger technischer Standard, der definiert, wie ein Webclient mit einem Server kommuniziert, damit die vom Client angeforderten Daten geladen und angezeigt werden können.

Allgemeine Informationen

HTTP ist zusammen mit URL und HTML eines der wichtigsten Konzepte des Internets (WWW). Es wurde Anfang der Neunziger entwickelt und liegt mittlerweile in der aktuellen Version 1.1 vor, die in dem Standard RFC2616 festgehalten ist.[1]

Das Protokoll definiert zunächst zwei unterschiedliche Arten von Nachrichten: Die Anfrage (Request) vom Client und die Antwort (Response) vom Server an den Client. Jede dieser Nachrichten besteht aus zwei Teilen: Dem HTTP-Header und dem HTTP-Body. Der Header beinhaltet Metainformationen über den Nachrichten-Body wie der verwendete Zeichensatz (Kodierung) und den Inhaltstyp (z.B. HTML-Dokument). Im HTTP-Body finden sich dann die Daten, die später beim Clienten angezeigt werden sollen.

Um diese Daten zuverlässig zwischen Server und Client zu übertragen, wird das TCP/IP-Protokoll verwendet, das als Transportschicht von Host zu Host fungiert. Die Datenübertragung im Internet ist nach einem sieben Schichtenmodell (OSI-Modell) aufgebaut, wobei das HTTP-Protokoll nur in den letzten drei Schichten (Anwendung, Darstellung und Sitzung) benutzt wird.[2]

Funktionen

Fordert ein Client mittels Request über TCP ein Dokument aus einer Internetadresse (URL) an, schickt der Server eine Antwort (Response), die immer auch einen HTTP-Statuscode übermittelt. Der Statuscode gibt Auskunft darüber, ob die Anfrage erfolgreich oder erfolglos war und sendet einen dreistelligen Code im HTTP-Header an den Clienten. Kann eine angeforderte Ressource nicht gefunden werden, wird beispielsweise der Fehlercode 404 ausgegeben.

Das HTTP-Protokoll dient jedoch nicht nur zur Übertragung von HTML-Ressourcen, es können auch andere Datenformate transportiert werden, wenn diese über Schnittstellen eingebunden werden. Die Ressource muss nicht einmal auf dem Server liegen: Dynamische Webseiten können mit PHP oder ASP.NET direkt beim Aufruf durch den Clienten erzeugt werden. Da HTTP ein objektorientiertes, offenes Protokoll ist, ist die Implementierung anderer Datentypen problemlos möglich. HTTP ist aber auch zustandslos. Das bedeutet, dass in der Kommunikation zwischen Client und Server keine Sitzungen oder Session-ID's gespeichert werden. Das geschieht erst im Webclient bzw. Browsers des Nutzers, zum Beispiel über einen HTTP-Cookie.

Die wichtigsten Funktionen des HTTP-Protokolls sind die Request-Methoden. Sie regeln die Übertragung der eigentlichen Daten. Mit HTTP GET, der am häufigsten verwendeten Methode, lassen sich zum Beispiel Dateien vom Server laden. Indem ein URI (Uniform Ressource Identifier), ein einheitlicher Bezeichner an den Server gesendet wird, weiß dieser, welche Ressource er zurücksenden muss. Dies geschieht aus Nutzersicht über das Aufrufen eines Links, einer URL. Der Server oder Host sendet dann das angeforderte Dokument mitsamt Statuscode zurück an den Webclienten.

Prinzipiell können alle beteiligten Rechner oder Netzwerke die Kommunikation zwischen Client und Server verfolgen, die über HTTP stattfindet. Deshalb wurde HTTPS entwickelt. Ein Protokoll, das Verschlüsselung und Authentifizierung ermöglicht, um gesendete Daten vor dem Zugriff Dritter zu schützen.[3]

Bedeutung für die Suchmaschinenoptimierung

Das HTTP-Protokoll und die damit verbundenen technischen Details sind wichtig für die Suchmaschinenoptimierung, da die Crawler der Suchmaschinen beim Zugang zu Webseiten auch auf HTTP angewiesen sind. Ein Crawler fungiert als User-Agent oder Webclient, wenn er das Internet nach Webseiten und Inhalten durchsucht, und sendet zunächst eine Anfrage an den Server mittels Request-Methoden.

Je nach Server-Modell stehen Webmastern verschiedene Möglichkeiten zur Verfügung, um den Server so zu konfigurieren, dass der Crawler Zugang erhält. Einerseits können in der Datei Robots.txt grundsätzliche Einstellungen vorgenommen werden, andererseits kann eine htaccess-Datei, die auf dem Server hinterlegt ist, diese Einstellungen weiter spezifizieren. Auch serverseitige Module wie mod-rewrite bei Apache Servern können zusammen mit der htaccess-Datei dazu verwendet werden, entsprechende Einstellungen vorzunehmen.

Insbesondere die Ausgabe von Fehlercodes muss vermieden werden, da Suchmaschinen solche Seiten nicht crawlen können und dementsprechend schlecht bewerten. Bei dynamischen URL's ist es empfehlenswert, sie in statische URL's umzuschreiben. Dies kann mithilfe von Redirects in der htaccess oder Umschreibungen wie mod-rewrite bei Apache Servern geschehen. Dabei sollten dauerhafte Umleitungen (301) gewählt werden, um die Linkpopularität weiterzugeben.[4]

Einzelnachweise

  1. Hypertext Transfer Protocol -- HTTP/1.1. ietf.org. Abgerufen am 10. Dezember 2013.
  2. ISO/OSI-7-Schichtenmodell. elektronik-kompendium.de. Abgerufen am 10. Dezember 2013.
  3. HTTPS vs HTTP: Warum das sicherere Protokoll nicht zum Standard wird. t3n.de. Abgerufen am 10. Dezember 2013.
  4. Redirection. Moz.com. Abgerufen am 10. Dezember 2013.

Weblinks