HTTP/Anfragemethoden
Im HTTP gibt es verschiedene Anfragemethoden (englisch: request methods), die es dem Browser ermöglichen, Informationen, Formulare oder Dateien an den Server zu senden.
Inhaltsverzeichnis
Wahl der Anfragemethode
Die Wahl der Übertragungsmethode hängt, will man es richtig machen, nicht etwa von der Präferenz des Programmierers ab, sondern folgt eigentlich ganz einfachen Regeln:
- Soll durch den Request eine bestimmte Ressource (Bild, Script, HTML-Dokument) vom Server angefordert werden, so ist die
GET
-Methode die richtige Wahl. - Soll dem Server ein Datenpaket zur Verarbeitung übegeben werden, ist die
POST
-Methode die richtige Wahl. Als URI wird in diesem Fall der Serverprozess angegeben, der für die Verarbeitung zuständig ist (beispielsweiseindex.php
). Senden Sie Formulardaten immer mitPOST
. - Werden Daten für Logins, insbesondere Passwörter übermittelt, dann ist nur
POST
die richtige Wahl. - Soll eine Ressource unter einer bestimmten URI auf dem Server gespeichert werden, so ist die
PUT
- oder diePATCH
Methode die richtige Wahl. Soll die Ressource gelöscht werden, verwendet manDELETE
. Eine ganze Familie von Webservices - die sogenannten REST Services - verwenden GET, PUT und DELETE, um eine Datenzugriffsschicht zu implementieren. Damit PHP andere Verben als GET oder POST akzeptiert, muss man sie aber in der php.ini zunächst freischalten.
Hauptartikel: PHP/Tutorials/Formulare#Wann ist GET oder POST zu verwenden?
Anfragemethoden
GET
Mit der GET-Methode können Sie eine Ressource (zum Beispiel eine Datei) vom Server anfordern. Dabei wird ein Parameter (z. B. übertragene Formulardaten), getrennt durch ein Fragezeichen, zum URI hinzugefügt.
Die Länge des URIs ist zwar nicht durch die Spezifikation begrenzt; es gibt aber je nach eingesetztem Server implementierungsspezifische Grenzen (beim Apache Webserver beispielsweise 16kB), aus Gründen der Abwärtskompatibilität sollte man 255 Bytes nicht überschreiten.
Dieser muss URL-encodiert sein, sodass z. B. Leerzeichen durch %20
und im Query-String als +
ersetzt werden müssen.
POST
Mit der POST-Methode können Sie große Datenmengen (wie Bilder oder HTML-Formular-Daten) zur weiteren Verarbeitung zum Server senden.
Name-Wert-Paare wie Formularnamen und die dazugehörigen Werte werden in einem URL-encodierten durch Kaufmanns-Und getrennten Datensatz zusammengefasst:
Die Daten werden beim Absenden des Formulars mit einer POST-Anfrage an den Server geschickt. Dabei ist der Datensatz aber nicht Teil der URL, sondern wird, durch eine Leerzeile getrennt, an den Header angehängt.
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.
HEAD
Die HEAD-Methode weist den Server an, die gleichen HTTP-Header wie bei GET
, nicht jedoch den Nachrichtenrumpf mit dem eigentlichen Dokumentinhalt zu senden. So kann zum Beispiel schnell die Gültigkeit einer Datei im Browser-Cache geprüft werden, indem die Größe verglichen wird.
PUT
Die PUT-Methode dient dazu eine Ressource (zum Beispiel eine Datei) unter Angabe des Ziel-URIs auf einen Webserver hochzuladen. Dabei muss sie nicht wie bei POST durch ein Skript verarbeitet werden, sondern wird an der in der ersten Zeile angegebenen Stelle platziert.
Es können so neue Ressourcen auf dem Server entstehen oder bestehende modifiziert werden.
PATCH
Die PATCH-Methode ändert ein bestehendes Dokument ohne dieses wie bei der PUT-Methode vollständig zu ersetzen. Mit PATCH können Clients Anfragen senden, um bestimmte Änderungen an einer Ressource auf dem Server vorzunehmen, ohne alle Daten erneut übertragen zu müssen.
Das Format einer PATCH-Anfrage wird durch HTTP nicht festgelegt. Es gibt eigene Spezifikationen wie RFC 6902 (JSON Patch) oder RFC 5261 (XML Patch), die für Objekte oder XML Dokumente konzipiert wurden. Es ist aber auch denkbar, dass ein Server eigene Patch-Regeln festlegt.
DELETE
Die DELETE-Methode löscht die angegebene Ressource auf dem Server.
DELETE und PUT sind häufig in der Standardkonfiguration von Webservern abgeschaltet, erlangen jedoch mit RESTful Web Services und der HTTP-Erweiterung WebDAV neue Bedeutung.
TRACE
Die TRACE-Methode 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 – sinnvoll für das Debugging von Verbindungen.
OPTIONS
Die OPTIONS-Methode liefert eine Liste der vom Server unterstützen Methoden und Merkmale.
CONNECT
Die CONNECT-Methode wird von Proxyservern implementiert, die in der Lage sind, SSL-Tunnel zur Verfügung zu stellen.
Weblinks
- blogtreehouse: The Definitive Guide to GET vs POST