HTTP-Grundlagen

Hypertext Transfer Protocol

HTTP-Methoden

Jede Client Request wird durch die Angabe der Methode eingeleitet. Methoden bestimmen die Aktion der Anforderung. Die aktuelle HTTP-Spezifikation sieht acht Methoden vor: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE und CONNECT.

GET-Methode

Die mit Abstand wichtigste Methode ist GET. Sie dient zur Anforderung eines Dokuments oder einer anderen Quelle. Eine Quelle wird dabei durch den Request-URL identifiziert. Man unterscheidet zwei Typen: conditional GET und partial GET. Beim Conditional-GET-Typ ist die Anforderung von Daten an Bedingungen geknüpft. Die genauen Bedingungen sind dabei im Header-Feld "Conditional" hinterlegt. Oft gebrauchte Bedingungen sind zum Beispiel If-Modified-Since, If-Unmodified-Since oder If-Match. Mit Hilfe dieser Bedingung lässt sich die Netzbelastung deutlich verringern, da nur noch die wirklich benötigten Daten übertragen werden. In der Praxis nutzen zum Beispiel Proxyserver diese Funktion, um die mehrfache Übertragung von Daten, die sich bereits im Cache befinden, zu verhindern.

Das gleiche Ziel verfolgt die partielle GET-Methode. Sie verwendet das Range-Header-Feld, das nur Teile der Daten überträgt, die der Client jedoch noch verarbeiten kann. Diese Technik wird für die Wiederaufnahme eines unterbrochenen Datentransfers verwendet.

POST-Methode

Den umgekehrten Weg nimmt die POST-Methode: Sie übermittelt in erster Linie Formulareingaben an einen Webserver. Aber auch die Kommentierung bestehender Quellen, Übermittlung von Nachrichten an Foren und Erweiterung von Online-Datenbanken sind mit POST möglich. Die an den Server übermittelten Daten sind in der Entity-Sektion enthalten. Auch die POST-Methode übermittelt einen URL. In diesem Fall dient dieser lediglich als Referenz, welche Routine auf dem Server die Bearbeitung der Daten übernimmt.

OPTIONS-Methode

Über diese Methode kann der Client Informationen über verfügbare Kommunikationsoptionen abrufen. So lassen sich insbesondere Beschränkungen von Quellen auf einem HTTP-Server oder auch einem Proxyserver ermitteln, ohne das eine bestimmte Aktion eingeleitet oder gar ein Datentransfer stattfindet.

HEAD-Methode

Diese Methode ist GET in seiner Funktionsweise sehr ähnlich. Einziger Unterschied: HEAD fordert lediglich den Header eines Dokuments oder Quelle an. Im Gegensatz zu GET übermittelt der Server aber nicht die eigentlichen Daten. HEAD eignet sich insbesondere dazu, die Größe von Quellen, Typ oder Objektattribute ausfindig zu machen. Der Server übermittelt auf eine HEAD-Anfrage die Metainformationen, die identisch mit den Informationen der GET-Request sind.

PUT-Methode

Dieser Typ erlaubt die Modifikation bestehender Quellen beziehungsweise Erzeugung neuer Daten auf dem Server. Im Unterschied zur POST-Methode identifiziert der URL in der PUT-Request die mit der Anforderung gesendeten Daten selbst, und nicht die Quelle.

DELETE-Methode

Mit Hilfe dieses Typs werden Daten auf dem HTTP-Server gelöscht, die durch den URL identifiziert sind. Das Interessante dabei: Der Löschvorgang muss nicht unmittelbar nach dem Eingang der Anforderung, sondern kann auch zu einen späteren Zeitpunkt erfolgen. Der Server soll laut Spezifikation zumindest die Annahme der Request bestätigen.

TRACE-Methode

Über diese Methode kann der Client Requests verfolgen, die über mehrere Knotenpunkte laufen. Dies ist insbesondere bei der Übermittlung der Request über einen oder mehrere Proxyserver interessant. Das letzte Glied der Kette generiert die Antwort. Die TRACE-Methode dient in erster Linie der Diagnose von Client-Server-Verbindungen. Über das Max-Forwards-Header-Feld bestimmt der Client die maximale Anzahl an Hops. Im Header-Feld "Via" der Antwortnachricht sind alle durchlaufenen Server protokolliert.

CONNECT-Methode

Die CONNECT-Methode ist in der HTTP/1.1-Spezifikation für Verbindungen reserviert, bei denen Proxyserver dynamisch als Tunnel agieren. In der Praxis kann es sich beispielsweise um SSL-Tunnel handeln. Der Tunnelmechanismus ist in der ersten Linie als Durchgang für SSL-gesicherte Verbindungen durch eine Firewall gedacht. In Proxyserver wie MS Proxy, Netscape Proxyserver oder auch WinGate ist diese Methode bereits implementiert. Der Client bestimmt durch die CONNECT-Methode samt Portangabe den Zielrechner. Der Proxyserver baut dann einen Tunnel zum angegebenen Rechner auf, und übermittelt Daten und Kommandos zwischen Client und Server. Details zu diesem Verfahren sind im Internet Draft "Tunneling TCP based protocols through Web proxy servers" festgelegt.