HTTP -Anfragemethoden
Was ist HTTP?
Das Hypertext Transfer Protocol (HTTP) soll die Kommunikation zwischen Clients und Servern ermöglichen.
HTTP fungiert als Anfrage-Antwort-Protokoll zwischen einem Client und einem Server.
Beispiel: Ein Client (Browser) sendet eine HTTP-Anfrage an den Server; Anschließend gibt der Server eine Antwort an den Client zurück. Die Antwort enthält Statusinformationen zur Anfrage und kann auch den angeforderten Inhalt enthalten.
HTTP-Methoden
- GET
- POST
- PUT
- HEAD
- DELETE
- PATCH
- OPTIONS
- CONNECT
- TRACE
Die beiden häufigsten HTTP-Methoden sind: GET und POST.
Die GET-Methode
GET wird verwendet, um Daten von einer angegebenen Ressource anzufordern.
Beachten Sie, dass die Abfragezeichenfolge (Name/Wert-Paare) in der URL einer GET-Anfrage gesendet wird:
/test/demo_form.html?name1=value1&name2=value2
Einige Hinweise zu GET-Anfragen:
- GET-Anfragen können zwischengespeichert werden
- GET-Anfragen bleiben im Browserverlauf
- GET-Anfragen können mit Lesezeichen versehen werden
- GET-Anfragen sollten niemals beim Umgang mit sensiblen Daten verwendet werden
- GET-Anfragen mit 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/aktualisieren.
Die mit POST an den Server gesendeten Daten werden im Anfragetext der HTTP-Anfrage gespeichert:
POST /test/demo_form.html HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
Einige Hinweise zu POST-Anfragen:
- POST-Anfragen werden niemals zwischengespeichert
- POST-Anfragen bleiben nicht im Browserverlauf
- POST-Anfragen können nicht mit Lesezeichen versehen werden
- POST-Anfragen haben keine Einschränkungen hinsichtlich der Datenlänge
Vergleichen Sie GET mit POST
Die folgende Tabelle vergleicht die beiden HTTP-Methoden: GET und POST.
GET | POST | |
---|---|---|
Zurück-Taste/Neuladen | Harmlos | Daten werden erneut übermittelt (der Browser sollte den Benutzer darüber informieren, dass die Daten erneut übermittelt werden) |
Gemerkt | Kann mit einem Lesezeichen versehen werden | Kann nicht mit einem Lesezeichen versehen werden |
Im Cache | Kann zwischengespeichert werden | Nicht zwischengespeichert |
Kodierungstyp | application/x-www-form-urlencoded | application/x-www-form-urlencoded oder multipart/form-data. Verwenden Sie mehrteilige Kodierung für Binärdaten |
Verlauf | Parameter bleiben im Browserverlauf | Parameter werden nicht im Browserverlauf gespeichert |
Einschränkungen der Datenlänge | Ja, beim Senden von Daten fügt die GET-Methode die Daten der URL hinzu; und die Länge einer URL ist begrenzt (die maximale URL-Länge beträgt 2048 Zeichen) | Keine Einschränkungen |
Einschränkungen beim Datentyp | Nur ASCII-Zeichen erlaubt | Keine Einschränkungen. Auch binäre Daten sind erlaubt |
Sicherheit | GET ist im Vergleich zu POST weniger sicher, da die gesendeten Daten Teil der URL sind. Verwenden Sie GET niemals, wenn Sie Passwörter oder andere vertrauliche Informationen senden! |
POST ist etwas sicherer als GET, da die Parameter nicht im Browserverlauf oder in Webserverprotokollen gespeichert werden |
Sichtbarkeit | Daten sind für jeden in der URL sichtbar | Daten werden nicht in der URL angezeigt |
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-Anfragen idempotent sind. Das heißt, dass der mehrfache Aufruf derselben PUT-Anfrage immer zum gleichen Ergebnis führt. Im Gegensatz dazu hat das wiederholte Aufrufen einer POST-Anfrage den Nebeneffekt, dass dieselbe Ressource mehrmals erstellt wird.
Die HEAD-Methode
HEAD ist fast identisch mit GET, jedoch ohne den Antworttext.
Mit anderen Worten: Wenn GET /users eine Liste von Benutzern zurückgibt, stellt HEAD /users die gleiche Anfrage, gibt aber nicht die Liste der Benutzer zurück.
HEAD-Anfragen sind nützlich, um zu prüfen, was eine GET-Anfrage zurückgibt, bevor tatsächlich eine GET-Anfrage 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 PATCH-Methode
Die PATCH-Methode wird verwendet, um teilweise Änderungen an einer Ressource vorzunehmen.
Die OPTIONS-Methode
Die OPTIONS-Methode beschreibt die Kommunikationsoptionen für die Zielressource.
Die CONNECT-Methode
Die CONNECT-Methode wird verwendet, um eine bidirektionale Kommunikation (einen Tunnel) mit der angeforderten Ressource zu starten.
Die TRACE-Methode
Die TRACE-Methode wird verwendet, um einen Nachrichten-Loopback-Test durchzuführen, der den Pfad für die Zielressource testet (nützlich für Debugging-Zwecke).