HTTP-Request-Methoden

Im Folgenden, die wichtigsten Methoden, die ein HTTP-Client für Anfragen an Webserver verwenden kann:

GET
ist die gebräuchlichste Methode. Mit ihr wird eine Ressource (z. B. eine Datei) unter Angabe eines URI vom Server angefordert. Die Länge des URIs ist je nach eingesetztem Server begrenzt und sollte aus Gründen der Abwärtskompatibilität nicht länger als 255 Bytes sein. (siehe unten)

POST schickt nahezu unbegrenzte Mengen an Daten zur weiteren Verarbeitung zum Server, diese werden als Inhalt der Nachricht übertragen und können beispielsweise aus Name-Wert-Paaren bestehen, die aus einem HTML-Formular stammen.
Es können so neue Ressourcen auf dem Server entstehen oder bestehende modifiziert werden. POST-Daten werden im Allgemeinen nicht von Caches zwischengespeichert. Zusätzlich können bei dieser Art der Übermittlung auch Daten wie in der GET-Methode an den URI gehängt werden. (siehe unten)

HEAD weist den Server an, nur den HTTP-Header (der gleiche wie bei GET), aber keinen eigentlichen Inhalt (Body) zu senden. So kann zum Beispiel schnell die Gültigkeit einer Datei im Browsercache geprüft werden.

PUT dient dazu eine Ressource (z. B. eine Datei) unter Angabe des Ziel-URI’s auf einen Webserver hochzuladen, ist heute aber kaum implementiert.

DELETE löscht die angegebene Ressource auf dem Server. Heute ist das, ebenso wie PUT, kaum implementiert bzw. in der Standardkonfiguration von Webservern abgeschaltet.

Beide Methoden erlangen z. B. mit der HTTP-Erweiterung WebDAV eine neue Bedeutung.

TRACE liefert die Anfrage so zurück, wie der Server sie empfangen hat. So kann überprüft werden, ob und wie die Anfrage auf dem Weg zum Server verändert worden ist, was vor allem für das Debugging von Verbindungen sinnvoll ist.

OPTIONS liefert eine Liste der vom Server unterstützen Methoden und Features.

CONNECT wird von Proxyservern verwendet, die in der Lage sind, SSL-Tunnel zur Verfügung zu stellen.

RFC 5789 definiert in Abgrenzung zu PUT für den Upload der kompletten Ressource, zusätzlich eine PATCH-Methode, um Ressourcen zu modifizieren.

Die HTTP-Erweiterung WebDAV fügt folgende Methoden zu HTTP hinzu:
PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK

Parameterübertragung

Häufig will ein Nutzer Informationen an eine Website senden. Dazu stellt HTTP prinzipiell zwei Möglichkeiten zur Verfügung:

HTTP-GET

Die Daten sind Teil der URL und bleiben deshalb beim Speichern oder der Weitergabe des Links erhalten.
Hier werden die Parameter-Wertepaare durch das Zeichen ? in der URL eingeleitet. Oft wird diese Vorgehensweise gewählt, um eine Liste von Parametern zu übertragen, die die Gegenstelle bei der Bearbeitung einer Anfrage berücksichtigen soll. Häufig besteht diese Liste aus Wertepaaren, welche durch das &-Zeichen voneinander getrennt sind. Die jeweiligen Wertepaare sind in der Form Parametername=Parameterwert aufgebaut.

Ein Beispiel:
Über die Schulungsseite für den Einfachen Einsatz von PHP wird eine Kontaktseite verfügbar. Dazu müssen wir dem Server aber mitteilen, dass wir auf die Kontaktseite wechseln wollen. Der Browser sendet die folgende Anfrage an den Server:

GET /simple/?page=kontakt HTTP/1.1
Host: php.nobs-nobody.de
...

Dem Server wird ein Schlüssel-Werte-Paar übergeben (wie gesagt: mit einem &-Zeichen verknüpft kann man auch mehrere Schlüssel-Werte-Paare übertragen):

Parameter Wert
page kontakt

Dieses Wertepaar wird in der Form
Parameter=Wert
mit vorangestelltem ? an die geforderte Seite angehängt.
Dadurch „weiß“ der Server, dass der Nutzer die Kontaktseite betrachten will. Der Server verarbeitet die Anfrage und sendet die entsprechende Datei:

HTTP/1.0 200 OK
Date: Wen, 10 Jul 2013 15:12:48 GMT
Last-Modified: Tue, 9 Jul 2013 11:18:20 GMT
Content-Language: de
Content-Type: text/html; charset=utf-8
<html>
<head>
...
</head>
<body>
...

Der Datenteil ist natürlich länger, hier soll nur das Protokoll betrachtet werden.

HTTP-POST

Übertragung der Daten mit einer speziell dazu vorgesehenen Anfrageart im HTTP-Body, so dass sie in der URL nicht sichtbar sind.
Die zu übertragenden Daten müssen ggf. URL-kodiert werden, d. h. reservierte Zeichen müssen mit „%<Hex-Wert>“ und Leerzeichen mit „+“ dargestellt werden.
Da sich die Daten nicht in der URL befinden, können per POST große Datenmengen, z. B. Bilder, übertragen werden.

Im folgenden Beispiel wird wieder die Kontaktseite angefordert, doch diesmal verwendet der Browser das Formular aus der vorherigen Antwort des Servers und eine POST-Anfrage. Die Parameter stehen dabei nicht in der URL, sondern werden durch einen Klick auf den Button im Body-Teil zum Server versendet:

POST /simple/?page=kontakt HTTP/1.1
Host: php.nobs-nobody.de
Content-Type: application/x-www-form-urlencoded
Content-Length: 66

name=nobs&email=nobs-nobody@gmx.de&quest=Testanfrage&submit=submit

Auch das versteht der Server und antwortet wieder mit beispielsweise folgendem Text:

HTTP/1.0 200 OK
Date: Wen, 10 Jul 2013 15:12:48 GMT
Last-Modified: Tue, 9 Jul 2013 11:18:20 GMT
Content-Language: de
Content-Type: text/html; charset=utf-8
<html>
<head>
...
</head>
<body>
...

Quelle: Wikipedia

Ein Gedanke zu „HTTP-Request-Methoden

  1. ugg boots on sale

    Thanks, I’ve just been browsing for info about this subject for ages and yours may be the greatest I’ve found out till now. However, what about the conclusion? Are you currently certain in regards to the supply?

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.