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.
Beispiel: Ein Client (Browser) sendet eine HTTP-Anfrage an den Server, woraufhin der Server eine Antwort an den Client zurückschickt. Die Antwort enthält Statusinformationen über die Anfrage und kann auch den angeforderten Inhalt enthalten.
HTTP Methoden
GET
POST
PUT
HEAD
DELETE
PATCH
OPTIONS
Die zwei häufigsten HTTP-Methoden sind: GET und POST.
Die GET Methode
GET wird verwendet, um Daten von einer bestimmten Ressource anzufordern.
GET ist eine der gängigsten HTTP-Methoden.
Beachte, dass der Query-String (Name/Wert-Paare) in der URL einer GET-Anfrage gesendet wird:
/test/demo_form.php?name1=wert1&name2=wert2
Einige andere Hinweise zu GET-Anfragen:
GET-Anfragen können gecached werden
GET-Anfragen bleiben in der Browser-Historie
GET-Anfragen können mit Lesezeichen versehen werden
GET-Anfragen sollten nie verwendet werden, wenn es um sensible Daten geht
GET-Anfragen haben Längenbeschränkungen
GET-Anfragen werden nur zum Anfordern von Daten verwendet (nicht zum Ändern)
Die POST Methode
POST wird verwendet, um Daten an einen Server zu senden, um eine Ressource zu erstellen/zu aktualisieren.
Die Daten, die mit POST an den Server gesendet werden, werden im Request Body der HTTP-Anfrage gespeichert:
POST /test/demo_form.php HTTP/1.1
Host: w3schools.com
name1=wert1&name2=wert2
POST ist eine der gängigsten HTTP-Methoden.
Einige andere Anmerkungen zu POST-Anfragen:
POST-Anfragen werden nie gecached
POST-Anfragen verbleiben nicht in der Browser-History
POST-Anfragen können nicht mit Lesezeichen versehen werden
POST-Anfragen haben keine Beschränkung der Datenlänge
Die PUT Methode
PUT wird verwendet, um Daten an einen Server zu senden, um eine Ressource zu erstellen/aktualisieren.
Der Unterschied zwischen POST und PUT ist, dass PUT Anfragen idempotent sind. Das bedeutet, dass der mehrfache Aufruf der gleichen PUT-Anfrage immer das gleiche Ergebnis liefert. Im Gegensatz dazu hat der wiederholte Aufruf einer POST-Anfrage den Nebeneffekt, dass die gleiche Ressource mehrfach erstellt wird.
Die HEAD Methode
HEAD ist fast identisch mit GET, aber ohne den Response Body.
Mit anderen Worten, wenn GET /users eine Liste von Benutzern zurückgibt, dann wird HEAD /users die gleiche Anfrage stellen, aber nicht die Liste der Benutzer zurückgeben.
HEAD-Anfragen sind nützlich, um zu überprüfen, was eine GET-Anfrage zurückgeben wird, bevor man eine GET-Anfrage stellt – zum Beispiel bevor man eine große Datei oder einen Antwortkörper herunterlädt.
Die DELETE Methode
Die DELETE Methode löscht die angegebene Ressource.
Die OPTIONS-Methode
Die OPTIONS Methode beschreibt die Kommunikationsoptionen für die Zielressource.
Vergleich GET vs. POST
Die folgende Tabelle vergleicht die beiden HTTP-Methoden: GET und POST.
GET POST
BACK button/Reload Harmlos Die Daten werden erneut übertragen (der Browser sollte den Benutzer darauf hinweisen, dass die Daten erneut übertragen werden sollen)
Mit Lesezeichen versehen Kann mit Lesezeichen versehen werden Kann nicht mit Lesezeichen versehen werden
Cached Kann gecached werden Nicht gecached
Kodierungstyp application/x-www-form-urlencoded application/x-www-form-urlencoded oder multipart/form-data. Verwende multipart Kodierung für binäre Daten
Verlauf Parameter bleiben im Browserverlauf Parameter werden nicht im Browserverlauf gespeichert
Einschränkungen bei der Datenlänge Ja, beim Senden von Daten fügt die GET-Methode die Daten zur URL hinzu; und die Länge einer URL ist begrenzt (maximale URL-Länge ist 2048 Zeichen) Keine Einschränkungen
Beschränkungen beim Datentyp Nur ASCII-Zeichen erlaubt Keine Beschränkungen. Binäre Daten sind auch erlaubt
Sicherheit GET ist im Vergleich zu POST weniger sicher, da die gesendeten Daten Teil der URL sind
Benutze niemals GET, wenn du Passwörter oder andere sensible Informationen sendest! POST ist etwas sicherer als GET, da die Parameter nicht im Browserverlauf oder in den Webserver-Logs gespeichert werden
Sichtbarkeit Daten sind für jeden in der URL sichtbar