PHP/GET und POST

Aus Mikiwiki
< PHP
Wechseln zu: Navigation, Suche

Formulare sind der Schlüssel zu interaktiven Webseiten. Der Nutzer kann Daten eingeben und der HTTP-Server in vielfältiger Weise reagieren. Die Darstellung der Formulare erfolgt mit Hilfe dafür vorhandener HTML-Tags, den Formularelementen. Die Übertragung der Formulardaten zum Webserver übernimmt HTTP mit den Methoden "GET" oder "POST", die in der RFC 2068 beschreiben werden.

Inhaltsverzeichnis

GET

Mit der "GET"-Methode werden beliebige Informationen durch die Ergebnis-URI identifiziert. Basiert der URI auf einem Prozess, der Daten zurückgibt, so besteht er aus den produzierten Daten. Der vollständige URI besteht aus dem URL, einem Fragezeichen als Trennzeichen und den Daten. Eine "GET"-Anforderung kann auch mit Bedingungen ("If-Modified-Since", "If-Unmodified-Since", "If-Match", "If-None-Match", "If-Range") zu senden. In diesen Fällen werden die Daten nur übertragen, wenn die Bedingungen zutreffen.

POST

Die "POST"-Methode wird verwendet, um dem Webserver mitzuteilen, dass die gesamte Einheit der Anforderung weitere Daten im Körper der Nachricht enthält. "POST" erlaubt damit unter anderem folgende Funktionen:

  • Mitteilung vorhandener Ressourcen
  • Übertragung von Nachrichten auf eine Nachrichtengruppe, Mailingliste oder ähnliche Gruppen
  • Übertragung eines Datenblocks (dazu gehören auch die Inhalte eines Formulars)

Die aktuell durch "POST" ausgelöste Aktion wird durch den Webserver bestimmt und ist abhängig vom Request-URI. Der gesendete Datenblock ist Bestandteil dieses URI, ähnlich wie eine Datei Bestandteil eines Verzeichnisses ist. Der durch "POST" ausgelöste Prozess muss nicht direkt an eine Ressource gerichtet sein, die durch den URI adressiert wird. In diesem Fall wird entweder 200 ("OK") oder 204 ("No content") als Antwortstatus gesendet. Wird eine Ressource auf dem Webserver erzeugt, so wird 201 ("Created") gesendet, im Körper der Nachricht steht eine Beschreibung des Status der Anforderung und ein Verweis auf die neue Ressource einschliesslich des neuen Kopfes. Alternativ kann die Antwort 303 ("See other") zur Umleitung des Clients gesendet werden.

Praktisch gesehen überträgt dieser Mechanismus Formulardatenm vom Webbrowser zum Webserver.

Anwendung

Für den hier vorgestellten Zweck ist vor allem interessant, dass die Methode "POST" die Daten im Körper verpackt und so als Teil der Nachricht überträgt. Hier ist der Platz nicht beschränkt. "GET" nutzt dagegen den URI zur Übertragung und hängt die Daten gewissermassen an den URL mit an. Die Länge des URL ist aber Beschränkungen von Seiten der Webbrowser unterworfen; akzeptable Grössen liegen bei 2 KB. Diese sind schnell erreicht, denn neben den Daten zählt auch jedes Trennzeichen und jeder Variablen- oder Feldname. Mit "POST" werden solche Beschränkungen umgangen. In hochperformanten Umgebungen kann als einziger Nachteil der grössere Zeitaufwand angesehen werden, da der Webserver zusätzlich zum Nachrichtenkopf auch den gesamten Körper erkennen und weiterreichen muss.