HTTP -Anforderungsmethoden
Was ist HTTP?
Das Hypertext Transfer Protocol (HTTP) wurde entwickelt, um die Kommunikation zwischen Clients und Servern zu ermöglichen.
HTTP funktioniert als Request-Response-Protokoll zwischen einem Client und einem Server.
Beispiel: Ein Client (Browser) sendet eine HTTP-Anfrage an den Server; dann gibt der Server eine Antwort an den Client zurück. Die Antwort enthält Statusinformationen über die Anfrage und kann auch den angeforderten Inhalt enthalten.
HTTP-Methoden
- WERDEN
- POST
- SETZEN
- KOPF
- LÖSCHEN
- PATCH
- OPTIONEN
Die beiden gängigsten HTTP-Methoden sind: GET und POST.
Die GET-Methode
GET wird verwendet, um Daten von einer bestimmten Ressource anzufordern.
GET ist eine der gebräuchlichsten HTTP-Methoden.
Beachten Sie, dass die Abfragezeichenfolge (Name/Wert-Paare) in der URL einer GET-Anforderung gesendet wird:
/test/demo_form.php?name1=value1&name2=value2
Einige andere Hinweise zu GET-Anforderungen:
- GET-Anfragen können zwischengespeichert werden
- GET-Anfragen bleiben im Browserverlauf
- GET-Anforderungen können mit einem Lesezeichen versehen werden
- GET-Anforderungen sollten niemals verwendet werden, wenn es um vertrauliche Daten geht
- GET-Anforderungen haben Längenbeschränkungen
- GET-Anfragen werden nur verwendet, um Daten anzufordern (nicht zu ändern)
Die POST-Methode
POST wird verwendet, um Daten an einen Server zu senden, um eine Ressource zu erstellen/aktualisieren.
Die mit POST an den Server gesendeten Daten werden im Request-Body des HTTP-Requests gespeichert:
POST /test/demo_form.php HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
POST ist eine der gebräuchlichsten HTTP-Methoden.
Einige andere Hinweise zu POST-Anforderungen:
- POST-Anforderungen werden niemals zwischengespeichert
- POST-Anforderungen verbleiben nicht im Browserverlauf
- POST-Anforderungen können nicht mit einem Lesezeichen versehen werden
- POST-Anforderungen haben keine Beschränkungen hinsichtlich 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 besteht darin, dass PUT-Anforderungen idempotent sind. Das heißt, das mehrmalige Aufrufen derselben PUT-Anfrage führt immer zum selben Ergebnis. Im Gegensatz dazu hat das wiederholte Aufrufen einer POST-Anforderung Nebenwirkungen, da dieselbe Ressource mehrmals erstellt wird.
Die HEAD-Methode
HEAD ist fast identisch mit GET, aber ohne den Antworttext.
Mit anderen Worten, wenn GET /users eine Liste von Benutzern zurückgibt, stellt HEAD /users dieselbe Anfrage, gibt jedoch keine Benutzerliste zurück.
HEAD-Anforderungen sind nützlich, um zu überprüfen, was eine GET-Anforderung zurückgibt, bevor eine GET-Anforderung tatsächlich gestellt wird – beispielsweise vor dem Herunterladen einer großen Datei oder eines Antworttexts.
Die DELETE-Methode
Die DELETE-Methode löscht die angegebene Ressource.
Die OPTIONS-Methode
Die OPTIONS-Methode beschreibt die Kommunikationsoptionen für die Zielressource.
Vergleichen Sie GET mit POST
Die folgende Tabelle vergleicht die beiden HTTP-Methoden: GET und POST.
GET | POST | |
---|---|---|
BACK button/Reload | Harmless | Data will be re-submitted (the browser should alert the user that the data are about to be re-submitted) |
Bookmarked | Can be bookmarked | Cannot be bookmarked |
Cached | Can be cached | Not cached |
Encoding type | application/x-www-form-urlencoded | application/x-www-form-urlencoded or multipart/form-data. Use multipart encoding for binary data |
History | Parameters remain in browser history | Parameters are not saved in browser history |
Restrictions on data length | Yes, when sending data, the GET method adds the data to the URL; and the length of a URL is limited (maximum URL length is 2048 characters) | No restrictions |
Restrictions on data type | Only ASCII characters allowed | No restrictions. Binary data is also allowed |
Security | GET is less secure compared to POST because data sent is part of the URL Never use GET when sending passwords or other sensitive information! |
POST is a little safer than GET because the parameters are not stored in browser history or in web server logs |
Visibility | Data is visible to everyone in the URL | Data is not displayed in the URL |