HTTP


Einführung

Das HTTP-Protokoll findet zwischen einem Web-Client (z.B. Browser) und einem Web-Server statt. Beispiel:
% telnet www.uni-koeln.de 80
Trying...
Connected to www1.rrz.Uni-Koeln.DE.
Escape character is '^]'.
GET / HTTP/1.0

HTTP/1.1 200 OK
Date: Mon, 01 Sep 1997 08:14:35 GMT
Server: Apache/1.2b6
Connection: close
Content-Type: text/html
Last-Modified: Sat, 26 Jul 1997 13:20:51 GMT
ETag: "18e83f90-1524-33d9f9b3"
Content-Length: 5412
Accept-Ranges: bytes



...

HTTP Spezifikation

Eine Spezifikation zu HTTP finden Sie in RFC-1945 (HTTP/1.0) und RFC-2068 (HTTP/1.1)

Darüberhinaus finden Sie hier mehr Informationen.

Aufbau von HTTP

HTTP basiert auf TCP. Es besteht aus Headern, gefolgt von einer leeren Zeile, und einem Body, der z.B. das Dokument sein kann. Die Header haben verschiedene Bedeutungen, je nachdem ob sie vom Server oder vom Client stammen.

Die Header koennen unterteilt werden in:

HTTP-Methoden

Als (HTTP-)Methoden kommen in Frage: GET zum Holen eines Dokumentes, HEAD zum Holen der Informationen über das Dokument, POST um Daten aus einem Formular an ein CGI-Skript weiterzureichen, PUT um eine Seite zu einem Server zu senden (Publishing), DELETE um eine Seite auf einem Server zu löschen, TRACE, OPTIONS.

HTTP-Versionen

Als HTTP-Versionen kommen in Betracht:

Antwort-Header

Die erste Zeile eines Servers als Antwort auf eine Anforderung ist eine sogenannte Antwort-Zeile. Beispiel:
HTTP/1.0 200 OK
HTTP/1.0 500 Internet Server Error
HTTP/1.0 404 Not Found
Die Antwort-Header bestehen aus der HTTP-Version, gefolgt von einem numerischen Antwort-Code. Diese Header lassen sich wie folgt einteilen:

Weitere HTTP-Header

Typische Entitäten-Header lauten:
Accept: application/postscript, image/gif
Content-type: text/html
Host: xzyyz
If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
User-Agent: Mozilla/3.01 (X11; I; SunOS 5.5.1 i86pc)

HTTP-Authentifizierung

Gesch¨tzte Verzeichnisse werden wie folgt angesprochen: Der Web-Client fordert erst eine URL vom Server mit GET an. Der Server antwortet daraufhin mit einem 401 Unauthorized und einem WWW-Authenticate Header (realm). Der Client erkennt dies, und fordert vom Benutzer (oder einem Cache) ein User-Name und -Passwort. Daraufhin wird die HTTP-Anforderung wiederholt allerdings mit einem Authorization Header, der die Daten Name/Passwort (Passwort: in base64) enthaelt. Der Server ueberprueft die Benutzerdaten und antwortet entweder mit 200 OK und der Seite, oder mit 401 Unauthorized.

Netscape Cookies

Auch wenn sie nicht Bestandteil von HTTP/1.1 sind, werden (Netscape-)Cookies dennoch sehr häufig angewandt, wg. State-erhaltung in einem ansonsten Stateless Protokoll.

Die Netscape Cookies sind inzwischen zu einem proposed standard geworden. Siehe hierzu RFC-2109 für die formale Spezifikation.

Cookies werden wie folgt gesetzt:

HTTP/1.0 200 OK
[einige response header]
Set-Cookie: kdnr=4711pwdfwef2342
Expires: 999999
[weitere response header]
Diese Cookies werden beim Netscape Navigator in einem Cookie-File gespeichert, und bei erneuter Anforderung derselben URL automatisch wie folgt an den Server zurückgesendet: ...
[einige anforderungs header]
Cookie: kdnr=4711pwdfwef2342
[weitere header]

Authentikation

Benutzer können authentifiziert werden. Der HTTP-Mechanismus hierzu ist in RFC-2069 formal definiert. Vorherige Seite, Nächste Seite, Index, Hauptindex.
Copyright © 1997/08/16 by Farid Hajji.