PUT ist die HTTP-Methode, die eine Ressource unter einer bekannten Adresse vollständig ersetzt. Der Client schickt die komplette neue Fassung, und der Server speichert sie an genau dieser Stelle.
- PUT
Die HTTP-Methode zum Ersetzen oder Anlegen einer Ressource unter der in der Anfrage genannten Adresse.
Beispiel: „Die App schickt das vollständige Profil per PUT an /api/kunden/4711, auch die Felder, die sich nicht geändert haben.“Abgrenzung zu PATCH: PATCH ändert nur die mitgeschickten Felder. PUT ersetzt alles, was unter der Adresse liegt.
Wie PUT funktioniert
Die Adresse bestimmt der Client, etwa /api/kunden/4711. Gibt es dort schon etwas, wird es ersetzt, sonst darf der Server es neu anlegen. Weil das Ergebnis jedes Mal dasselbe ist, ist PUT idempotent, und eine wiederholte Anfrage richtet keinen Schaden an.
Die Kehrseite: Ein Feld, das in der Anfrage fehlt, fehlt danach auch auf dem Server. Wer per PUT nur die E-Mail-Adresse schickt, hat hinterher einen Kunden ohne Namen.
PUT im Vergleich mit den anderen Methoden
Die Übersicht zeigt alle neun HTTP-Methoden. Sicher heißt, dass eine Methode nichts verändert; idempotent heißt, dass mehrfaches Senden dasselbe Ergebnis hat wie einfaches.
Methode | Wofür | Sicher | Idempotent |
|---|---|---|---|
Ressource abrufen, ohne etwas zu ändern | ja | ja | |
wie GET, aber nur die Kopfzeilen | ja | ja | |
Daten senden, meist etwas Neues anlegen | nein | nein | |
PUT | Ressource vollständig ersetzen | nein | ja |
Ressource teilweise ändern | nein | nein | |
Ressource löschen | nein | ja | |
erlaubte Methoden erfragen | ja | ja | |
Tunnel über einen Proxy aufbauen | nein | nein | |
Anfrage zur Fehlersuche zurückspiegeln | ja | ja |
PUT in Formularen und Frameworks
HTML-Formulare kennen nur GET und POST. Frameworks wie Laravel helfen sich mit einem versteckten Feld, das dem Server sagt, dass die Anfrage als PUT gemeint ist.
In REST-APIs ist PUT der klassische Weg, eine Ressource zu aktualisieren. Viele Schnittstellen bieten daneben PATCH an, weil Teiländerungen im Alltag häufiger sind.