PUT

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: Es macht keinen Unterschied, ob es einmal oder mehrmals hintereinander aufgerufen wird (es gibt keine zusätzlichen Effekte).

Anforderung hat einen Body Ja
Erfolgreiche Antwort hat einen Body Eventuell
Sicher Nein
Idempotent Ja
Cacheable Nein
In HTML-Formularen erlaubt Nein

Syntax

http
PUT <request-target>["?"<query>] HTTP/1.1
<request-target>

Identifiziert die Zielressource der Anfrage, wenn sie mit den Informationen im Host-Header kombiniert wird. 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> Optional

Eine optionale Abfragekomponente, die durch ein Fragezeichen ? eingeleitet wird. Oft verwendet, um identifizierende Informationen in Form von key=value Paaren zu übertragen.

Beispiele

Erfolgreiches Erstellen einer Ressource

Die folgende PUT-Anfrage versucht, eine Ressource bei example.com/new.html mit dem Inhalt <p>New File</p> zu erstellen:

http
PUT /new.html HTTP/1.1
Host: example.com
Content-type: text/html
Content-length: 16

<p>New File</p>

Wenn die Zielressource keine aktuelle Darstellung hat und die PUT-Anfrage erfolgreich eine erstellt, muss der Ursprungsserver eine 201 Created-Antwort senden:

http
HTTP/1.1 201 Created
Content-Location: /new.html

Wenn die Zielressource eine aktuelle Darstellung hat und diese Darstellung erfolgreich mit dem Zustand in der Anfrage modifiziert wird, muss der Ursprungsserver entweder eine 200 OK oder eine 204 No Content senden, um den erfolgreichen Abschluss der Anfrage anzuzeigen:

http
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 vom Benutzer initiierte Aktionen, daher gilt die "Browser-Kompatibilität" nicht. Entwickler können diese Anforderungsmethode mithilfe von fetch() festlegen.

Siehe auch