Mini-HOWTO: HTTP
Die Hinweise auf dieser Seite sollen beim Bearbeiten der Aufgabe 22
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: Mon Nov 27 16:57:05 MET 2000