Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
POST request method
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
DiePOST-HTTP-Methode sendet Daten an den Server. Der Typ des Anfragetextes wird durch denContent-Type Header angegeben.
Der Unterschied zwischenPUT undPOST ist, dassPUTidempotent ist: Eine einmalige Ausführung ist nicht anders als mehrfache aufeinanderfolgende Ausführungen (es gibt keine Nebeneffekte).Mehrfache identischePOST-Anfragen können zusätzliche Effekte haben, z.B. das mehrfache Erstellen derselben Bestellung.
HTML-Formulare senden typischerweise Daten mitPOST, was normalerweise eine Änderung auf dem Server zur Folge hat.Für HTML-Formulare wird das Format/die Kodierung des Inhalts durch dasenctype Attribut des<form> Elements, oder dasformenctype Attribut der<input> oder<button> Elemente bestimmt.Die Kodierung kann eine der folgenden sein:
application/x-www-form-urlencoded: Die Schlüssel und Werte werden in Schlüssel-Wert-Tupel codiert, die durch ein Kaufmanns-Und (&) getrennt sind, mit einem Gleichheitszeichen (=) zwischen dem Schlüssel und dem Wert (z.B.first-name=Frida&last-name=Kahlo).Nicht-alphanumerische Zeichen in beiden, Schlüssel und Werten, sindprozentkodiert: Dies ist der Grund, warum dieser Typ nicht für die Verwendung mit Binärdaten geeignet ist, und Sie stattdessenmultipart/form-datahierfür verwenden sollten.multipart/form-data: Jeder Wert wird als ein Datenblock ("body part") gesendet, getrennt durch einen vom Benutzeragenten definierten Trenner (z.B.boundary="delimiter12345"), der jeden Teil trennt.Die Schlüssel werden imContent-DispositionHeader jedes Teils oder Datenblocks beschrieben.text/plain
Wenn diePOST-Anfrage durch einenfetch() Aufruf oder aus einem anderen Grund als einem HTML-Formular gesendet wird, kann der Körper jeden Typ haben.Wie in der HTTP/1.1-Spezifikation beschrieben, istPOST dafür vorgesehen, eine einheitliche Methode zur Verfügung zu stellen, um die folgenden Funktionen abzudecken:
- Anmerkung bestehender Ressourcen
- Senden einer Nachricht an ein Schwarzes Brett, eine Newsgroup, Mailingliste oder ähnliche Gruppe von Artikeln
- Hinzufügen eines neuen Benutzers über ein Anmeldeformular
- Bereitstellung eines Datenblocks, wie das Ergebnis des Einreichens eines Formulars, für einen Datenverarbeitungsprozess
- Erweiterung einer Datenbank durch einen Anhängevorgang
| Anfrage hat einen Körper | Ja |
|---|---|
| Erfolgreiche Antwort hat einen Körper | Ja |
| Sicher | Nein |
| Idempotent | Nein |
| Zwischenspeicherbar | Nur wenn Frischeinformationen enthalten sind |
| Erlaubt inHTML-Formularen | Ja |
In diesem Artikel
Syntax
POST <request-target>["?"<query>] HTTP/1.1<request-target>Identifiziert die Zielressource der Anfrage, wenn kombiniert mit den Informationen im
HostHeader.Dies ist ein absoluter Pfad (z.B./path/to/file.html) in Anfragen an einen Ursprungsserver und eine absolute URL in Anfragen an Proxys (z.B.http://www.example.com/path/to/file.html).<query>OptionalEine optionale Abfragekomponente, der ein Fragezeichen
?vorangestellt ist.Wird häufig verwendet, um identifizierende Informationen in Form vonkey=valuePaaren zu übertragen.
Beispiele
>URL-kodierte Formularübermittlung
Ein Formular mitapplication/x-www-form-urlencoded Inhaltskodierung (Standard) sendet eine Anfrage, bei der der Körper die Formulardaten inkey=value Paaren enthält, wobei jedes Paar durch ein& Symbol getrennt ist, wie unten gezeigt:
POST /test HTTP/1.1Host: example.comContent-Type: application/x-www-form-urlencodedContent-Length: 27field1=value1&field2=value2Multipart-Formularübermittlung
Diemultipart/form-data Kodierung wird verwendet, wenn ein Formular Dateien oder eine große Menge an Daten enthält.Dieser Anfragekörper gliedert jeden Teil des Formulars mithilfe eines Trennzeichen-Strings.Ein Beispiel für eine Anfrage in diesem Format:
POST /test HTTP/1.1Host: example.comContent-Type: multipart/form-data;boundary="delimiter12345"--delimiter12345Content-Disposition: form-data; name="field1"value1--delimiter12345Content-Disposition: form-data; name="field2"; filename="example.txt"value2--delimiter12345--DerContent-Disposition Header gibt an, wie die Formulardaten verarbeitet werden sollen, indem das Feldname undfilename, falls zutreffend, spezifiziert wird.
Spezifikationen
| Specification |
|---|
| HTTP Semantics> # POST> |
Browser-Kompatibilität
Siehe auch
- HTTP-Anfragemethoden
- HTTP-Antwortstatuscodes
- HTTP-Header
Content-TypeHeaderContent-DispositionHeaderGETMethode