HTTP Methoden: GET vs POST


Die beiden am häufigsten verwendeten HTTP-Methoden sind: GET und POST.


Was ist HTTP?

Das Hypertext Transfer Protocol (HTTP) wurde entwickelt, um die Kommunikation zwischen Clients und Servern zu ermöglichen.

HTTP funktioniert als Anfrage-Antwort-Protokoll zwischen einem Client und einem Server.

Ein Webbrowser kann der Client sein, und eine Webanwendung auf einem Computer kann auch als Server fungieren.

Beispiel: Der Client (Browser) sendet eine HTTP-Anfrage an den Server; der Server gibt eine Antwort an den Client zurück. Die Antwort enthält Statusinformationen über die Anfrage und kann auch den angeforderten Inhalt enthalten.


Zwei HTTP-Anfragemethoden: GET und POST

Beim Request-Response zwischen einem Client und einem Server sind die zwei am häufigsten verwendeten Methoden: GET und POST.

  • GET- Daten von einer angegebenen Ressource anfordern.
  • POST- Daten zur Verarbeitung an eine angegebene Ressource übermitteln.

GET-Parameter werden in der Regel in der URL angezeigt, während POST, das über ein Formular übermittelt wird, sie nicht in der URL anzeigt, wodurch POST verdeckter ist:


GET-Methode

Beachten Sie, dass der Query-String (Name/Wert-Paare) in der URL einer GET-Anfrage gesendet wird:

/test/demo_form.php?name1=value1&name2=value2

Einige weitere Hinweise zu GET-Anfragen:

  • GET-Anfragen können zwischengespeichert werden
  • GET-Anfragen bleiben im Browserverlauf
  • GET-Anfragen können als Lesezeichen gespeichert werden
  • GET-Anfragen sollten nicht verwendet werden, wenn sensible Daten verarbeitet werden
  • GET-Anfragen haben Längenbeschränkungen
  • GET-Anfragen sollten nur zum Abrufen von Daten verwendet werden

POST-Methode

Beachten Sie, dass der Query-String (Name/Wert-Paare) im HTTP-Nachrichtenkörper einer POST-Anfrage gesendet wird:

POST /test/demo_form.php HTTP/1.1
Host: example.com
name1=value1&name2=value2

Weitere Hinweise zu POST-Anfragen:

  • POST-Anfragen werden nie zwischengespeichert
  • POST-Anfragen bleiben nicht im Browserverlauf
  • POST kann nicht als Lesezeichen gespeichert werden
  • POST-Anfragen unterliegen keinen Beschränkungen der Datenlänge

GET vs. POST vergleichen

Die folgende Tabelle vergleicht die beiden HTTP-Methoden: GET und POST.

  GET POST
Zurück-Schaltfläche/Aktualisieren Harmlos Daten werden erneut übermittelt (der Browser sollte den Benutzer darüber informieren, dass die Daten erneut übermittelt werden).
Bookmark Kann als Lesezeichen gespeichert werden Kann nicht als Lesezeichen gespeichert werden
Cache Kann zwischengespeichert werden Kann nicht zwischengespeichert werden
Kodierungstyp application/x-www-form-urlencoded application/x-www-form-urlencoded oder multipart/form-data. Verwenden Sie Multipart-Kodierung für Binärdaten.
Verlauf Parameter bleiben im Browserverlauf. Parameter werden nicht im Browserverlauf gespeichert.
Einschränkungen der Datenlänge Ja, es gibt eine Begrenzung. Beim Senden von Daten hängt die GET-Methode die Daten an die URL an; die URL-Länge ist begrenzt (die maximale URL-Länge beträgt 2048 Zeichen). Keine Begrenzung.
Einschränkungen der Datentypen Es sind nur ASCII-Zeichen erlaubt. Keine Einschränkungen. Binärdaten sind ebenfalls erlaubt.
Sicherheit Im Vergleich zu POST ist GET weniger sicher, weil die gesendeten Daten Teil der URL sind.

Verwenden Sie niemals GET, wenn Sie Passwörter oder andere vertrauliche Informationen senden!
POST ist sicherer als GET, weil Parameter nicht im Browserverlauf oder in Webserver-Logs gespeichert werden.
Sichtbarkeit Daten sind für jeden in der URL sichtbar. Daten werden nicht in der URL angezeigt.


Andere HTTP-Anfragemethoden

Die folgende Tabelle listet einige andere HTTP-Anfragemethoden auf:

Methode Beschreibung
HEAD Wie GET, gibt aber nur HTTP-Header zurück, nicht den Dokumentbody.
PUT Lädt eine Repräsentation der angegebenen URI hoch.
DELETE Löscht die angegebene Ressource.
OPTIONS Gibt die vom Server unterstützten HTTP-Methoden zurück.
CONNECT Wandelt die Anfrageverbindung in einen transparenten TCP/IP-Tunnel um.
Weitere Erweiterungen