DELETE

Metoda HTTP

Specifikace metody HTTP DELETE

Metoda DELETE požaduje, aby server původu odstranil spojení mezi cílovým prostředkem a jeho aktuální funkčností. Tato metoda je v podstatě podobná příkazu rm v systému UNIX: vyjadřuje spíše operaci odstranění mapování URI serveru původu než očekávání, že budou odstraněny dříve asociované informace.

Pokud má cílový prostředek jednu nebo více aktuálních reprezentací, mohou, ale nemusí být serverem původu zničeny a související úložiště může, ale nemusí být obnoveno, což zcela závisí na povaze prostředku a jeho implementaci serverem původu (které jsou mimo rozsah této specifikace). Stejně tak může být nutné v důsledku DELETE deaktivovat nebo archivovat jiné aspekty implementace prostředku, například spojení s databází nebo bránou. Obecně se předpokládá, že server původu povolí DELETE pouze u prostředků, pro které má předepsaný mechanismus pro provedení odstranění.

Metodu DELETE umožňuje relativně málo prostředků - její primární použití je pro vzdálená autorská prostředí, kde má uživatel určité pokyny ohledně jejího účinku. Například prostředek, který byl dříve vytvořen pomocí požadavku PUT nebo identifikován pomocí pole hlavičky Location po odpovědi 201 (Created) na požadavek POST, může umožnit odpovídajícím požadavkem DELETE tyto akce zrušit. Podobně mohou vlastní implementace uživatelských agentů, které implementují autorskou funkci, například klienti pro řízení revizí používající HTTP pro vzdálené operace, používat DELETE na základě předpokladu, že prostor URI serveru byl vytvořen tak, aby odpovídal úložišti verzí.

Pokud je metoda DELETE úspěšně použita, měl by server původu odeslat stavový kód 202 (Accepted), pokud bude akce pravděpodobně úspěšná, ale ještě nebyla provedena, stavový kód 204 (No Content), pokud byla akce provedena a není třeba poskytnout žádné další informace, nebo stavový kód 200 (OK), pokud byla akce provedena a zpráva odpovědi obsahuje reprezentaci popisující stav.

Platné zatížení v rámci zprávy požadavku DELETE nemá definovanou sémantiku; odeslání těla platného zatížení v požadavku DELETE může způsobit, že některé existující implementace požadavek odmítnou.

Odpovědi na metodu DELETE nelze ukládat do mezipaměti. Pokud požadavek DELETE projde mezipamětí, která má pro efektivní URI požadavku uloženou jednu nebo více odpovědí, budou tyto uložené odpovědi zneplatněny (viz část 4.4 [RFC7234]).

Metoda HTTP DELETE byla specifikována v části 4.3.5 dokumentu RFC 7231 organizací IETF (Internet Engineering Task Force) a konsorciem W3C (World Wide Web Consortium).

Popis metody DELETE

probíhající práce

Příklad pro metodu HTTP 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