Hypertext Transfer Protocol

HTML-Erfinder Tim Berners-Lee hat nicht nur HTML, sondern auch einen Transportmechanismus für die plattformübergreifenden Dokumente entwickelt: HTTP ist das wichtigste Transportprotokoll für webbasierte Inhalte.

Der Erfolg des World Wide Webs ist zu einem großen Teil auf die Einfachheit von HTTP zurückzuführen. Das Protokoll lässt sich vergleichsweise einfach implementieren. Das zu Grunde liegende Prinzip ist simpel: Die Übermittlung der Daten erfolgt nach dem Request-Response-Schema. Der HTTP-Client sendet seine Anfrage an den HTTP-Server, der diese bearbeitet und eine Antwort zurücksendet. Im Gegensatz zum FTP-Protokoll sieht HTTP beim Verbindungsaufbau keine mehrstufige Handshake-Phase vor. Weiterer Vorteil: HTTP ist grundsätzlich abwärtskompatibel. So können zum Beispiel Browser, die HTTP 1.1 beherrschen, auch mit HTTP-1.0-kompatiblen Webservern kommunizieren. Die jeweils höhere Versionsnummer muss sich bei diesem Vorgang automatisch an die ältere Version anpassen.

Geschichte

Die ursprüngliche Version HTTP 0.9 war als einfaches Transportprotokoll für Daten ausgelegt. Sie unterstützte lediglich die GET-Methode. MIME-Unterstützung für die Übertragung von Binärdaten oder ein Authentifizierungsmechanismus waren nicht vorgesehen.

Mit HTTP 1.0 (RFC 1945)wurde ein erweitertes Request-Response-Format eingeführt, das die Übermittlung von mehr Informationen in beide Richtungen erlaubt. Der eigentlichen Request folgt ein Satz von Headerfeldern, die beispielsweise die Übermittlung des Browsertyps erlauben. Seit Version 1.0 kennt HTTP auch die POST-Methode, mit der zum Beispiel Formulareingaben vom Browser zum Webserver gelangen.

Weitreichendere Verbesserungen brachte die Einführung von HTTP 1.1. Eine der interessantesten Neuerungen: persistente Verbindungen. Während bei HTTP 1.0 jede Request über eine neue Verbindung zum Server übertragen wird, können in der aktuellen Version Verbindungen aufrechterhalten werden, um mehrere Requests zu übermitteln. Über die neue Funktion Request Pipelining sendet ein Client nachfolgende Requests an den Server, bevor die Antwort des Servers auf die vorhergehende Anforderung auf der Clientseite eingetroffen ist. Im Zusammenspiel mit persistenten Verbindungen bringt das einen deutlichen Performancegewinn. Ebenfalls für mehr Performance sorgen die in HTTP 1.1 hinzugekommenen Cache-Kontrollfunktionen. HTTP 1.1 ist in RFC 2616 definiert.