DELETE

HTTP Methode

Spezifikation von der HTTP Methode DELETE

Die DELETE-Methode fordert den Ursprungsserver auf, die Verbindung zwischen der Zielressource und ihrer aktuellen Funktionalität zu entfernen. Im Grunde ähnelt diese Methode dem rm-Befehl in UNIX: Sie drückt eine Löschoperation für die URI-Zuordnung des Ursprungs-Servers aus und nicht die Erwartung, dass die zuvor assoziierten Informationen gelöscht werden.

Wenn die Ziel-Ressource eine oder mehrere aktuelle Repräsentationen hat, können diese vom Ursprungs-Server zerstört werden oder auch nicht, und der assoziierte Speicherplatz kann zurückgewonnen werden oder auch nicht, was ganz von der Art der Ressource und ihrer Implementierung durch den Ursprungs-Server abhängt (was außerhalb des Rahmens dieser Spezifikation liegt). Ebenso können andere Implementierungsaspekte einer Ressource als Ergebnis eines DELETE deaktiviert oder archiviert werden müssen, wie z. B. Datenbank- oder Gateway-Verbindungen. Im Allgemeinen wird davon ausgegangen, dass der Ursprungsserver DELETE nur für Ressourcen zulässt, für die er einen vorgeschriebenen Mechanismus zur Durchführung der Löschung hat.

Relativ wenige Ressourcen erlauben die DELETE-Methode - ihre primäre Verwendung ist für Remote-Authoring-Umgebungen, in denen der Benutzer eine gewisse Kontrolle über die Auswirkungen hat. Zum Beispiel könnte eine Ressource, die zuvor mit einer PUT-Anfrage erstellt oder über das Location-Header-Feld nach einer 201 (Created)-Antwort auf eine POST-Anfrage identifiziert wurde, eine entsprechende DELETE-Anfrage erlauben, um diese Aktionen rückgängig zu machen. Ebenso könnten benutzerdefinierte User-Agent-Implementierungen, die eine Autorenfunktion implementieren, wie z.B. Revisionskontroll-Clients, die HTTP für Remote-Operationen verwenden, DELETE basierend auf der Annahme verwenden, dass der URI-Raum des Servers so gestaltet wurde, dass er einem Versions-Repository entspricht.

Wenn eine DELETE-Methode erfolgreich angewendet wird, SOLLTE der Ursprungsserver einen 202 (Accepted) Statuscode senden, wenn die Aktion wahrscheinlich erfolgreich sein wird, aber noch nicht ausgeführt wurde, einen 204 (No Content) Statuscode, wenn die Aktion ausgeführt wurde und keine weiteren Informationen geliefert werden müssen, oder einen 200 (OK) Statuscode, wenn die Aktion ausgeführt wurde und die Antwortnachricht eine Darstellung enthält, die den Status beschreibt.

Eine Nutzlast innerhalb einer DELETE-Anforderungsnachricht hat keine definierte Semantik; das Senden eines Nutzlastkörpers bei einer DELETE-Anforderung kann dazu führen, dass einige bestehende Implementierungen die Anforderung zurückweisen.

Antworten auf die DELETE-Methode sind nicht cachefähig. Wenn eine DELETE-Anfrage einen Cache durchläuft, der eine oder mehrere gespeicherte Antworten für den effektiven Anfrage-URI hat, werden diese gespeicherten Antworten ungültig gemacht (siehe Abschnitt 4.4 von [RFC7234]).

Die HTTP-Methode DELETE ist in Abschnitt 4.3.5 des Dokuments RFC 7231 von der Internet Engineering Task Force (IETF) und dem World Wide Web Consortium (W3C) spezifiziert worden.

Beschreibung der Methode DELETE

in Arbeit befindliche Maßnahmen

Beispiel für die HTTP Methode DELETE

Request header:
DELETE /data/item/123 HTTP/1.1
Host: api.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/58.0.3029.110 Safari/537
Authorization: Bearer YOUR_ACCESS_TOKEN
Accept-Language: de-DE,de;q=0.5
Connection: keep-alive
Response header:
Content-Type: application/json
Date: Mon, 31 July 2023 14:58:12 GMT
Server: Apache/2.4.7 (Ubuntu)
Cache-Control: no-store