PUT request method
Die PUT HTTP-Methode erstellt eine neue Ressource oder ersetzt eine Darstellung der Zielressource mit dem Anforderungs-Inhalt.
Der Unterschied zwischen PUT und POST besteht darin, dass PUT idempotent ist: Das einmalige Aufrufen ist nicht anders, als es mehrmals hintereinander aufzurufen (es gibt keine _Neben_wirkungen).
| Anforderung hat einen Body | Ja |
|---|---|
| Erfolgreiche Antwort hat einen Body | Kann |
| Sicher | Nein |
| Idempotent | Ja |
| Cachefähig | Nein |
| Erlaubt in HTML-Formularen | Nein |
Syntax
PUT <request-target>["?"<query>] HTTP/1.1
<request-target>-
Identifiziert die Zielressource der Anforderung in Kombination mit den im
HostHeader bereitgestellten Informationen. Dies ist ein absoluter Pfad (z.B./path/to/file.html) bei Anforderungen an einen Ursprung-Server und eine absolute URL bei Anforderungen an Proxys (z.B.http://www.example.com/path/to/file.html). <query>Optional-
Eine optionale Abfragekomponente, der ein Fragezeichen
?vorangestellt ist. Häufig verwendet, um Identifikationsinformationen in Form vonkey=valuePaaren zu übertragen.
Beispiele
>Erfolgreiches Erstellen einer Ressource
Die folgende PUT-Anfrage bittet darum, eine Ressource unter example.com/new.html mit dem Inhalt <p>New File</p> zu erstellen:
PUT /new.html HTTP/1.1
Host: example.com
Content-type: text/html
Content-length: 16
<p>New File</p>
Falls die Zielressource keine aktuelle Darstellung hat und die PUT-Anfrage erfolgreich eine erstellt, muss der Ursprungsserver eine 201 Created Antwort senden:
HTTP/1.1 201 Created
Content-Location: /new.html
Falls die Zielressource eine aktuelle Darstellung hat und diese Darstellung erfolgreich mit dem Zustand der Anfrage modifiziert wird, muss der Ursprungsserver entweder eine 200 OK oder eine 204 No Content senden, um den erfolgreichen Abschluss der Anfrage zu indikieren:
HTTP/1.1 204 No Content
Content-Location: /existing.html
Spezifikationen
| Specification |
|---|
| HTTP Semantics> # PUT> |
Browser-Kompatibilität
Der Browser verwendet die PUT-Methode nicht für benutzerinitiierte Aktionen, daher gilt "Browser-Kompatibilität" nicht.
Entwickler können diese Anforderungsmethode mit fetch() festlegen.