Mini-HOWTO: HTTP

Die Hinweise auf dieser Seite sollen beim Bearbeiten der Aufgabe 21 helfen. Wir gehen kurz auf einige Eigenschaften des HTTP-Protokolls ein. Die gängigsten Varianten sind HTTP/1.0 und HTTP/1.1, wobei die Version 1.1 effizientere Verbindungen ermöglicht, aber etwas schwieriger zu handhaben ist. Wir empfehlen, HTTP/1.0 für die Aufgabe zu verwenden. Ein Seiten-Request an einen Webserver sieht beispielsweise wie folgt aus:
GET /index.html HTTP/1.0
[...optionale Header-Zeilen...]
(Leerzeile)
Der Server sendet daraufhin die Antwortdaten und (wichtig!) schliesst danach die Verbindung. Dadurch kann das Ende der Uebertragung einfach erkannt werden. Das heisst aber auch, um eine neue Anfrage zu schicken, muss eine neue Verbindung geöffnet werden. Dies entfällt unter HTTP/1.1. Dabei hält der Server standardmässig die Verbindung offen und es können weitere Requests abgesetzt werden. Andererseits ist es nicht mehr so einfach, zu erkennen, wann der Server die Uebertragung beendet. Dazu muss nun das Header-Feld Content-Length ausgewertet werden.

Ein weiterer Unterschied von HTTP/1.1 zu HTTP/1.0 ist der Host: Header, der in jedem Request mitgesendet werden muss. Damit können verschiedene Namen eines einzigen physischen Rechners unterschieden werden.

Der obige Request sieht unter HTTP/1.1 dann so aus:
GET /index.html HTTP/1.1
Host: www.inf.ethz.ch
[...weitere, optionale Header-Zeilen...]

(Leerzeile)
Referenzen für das HTTP-Protokoll sind beispielsweise auf den Seiten des WWW-Konsortiums zu finden, das sich um Web-Standards kümmert: [HTTP/1.0] [HTTP/1.1]
Harald Vogt
Last modified: Tue Nov 20 12:42:16 MET 2001