DELETE
Метод HTTP
Специфікація HTTP-методу DELETE
Метод DELETE запитує у сервера-джерела видалення зв'язку між цільовим ресурсом і його поточною функціональністю. По суті, цей метод подібний до команди rm у UNIX: він виражає операцію видалення у відображенні URI сервера-джерела, а не очікує видалення раніше пов'язаної інформації.
Якщо цільовий ресурс має одне або кілька поточних представлень, вони можуть бути знищені сервером-джерелом, а пов'язане з ними сховище може бути відновлене, а може і не бути відновлене, що повністю залежить від природи ресурсу та його реалізації сервером-джерелом (які виходять за межі цієї специфікації). Аналогічно, інші аспекти реалізації ресурсу можуть потребувати деактивації або архівування в результаті DELETE, наприклад, з'єднання з базою даних або шлюзом. Загалом, передбачається, що сервер-джерело дозволить DELETE лише для тих ресурсів, для яких він має визначений механізм виконання видалення.
Відносно небагато ресурсів допускають використання методу DELETE - його основне застосування стосується середовищ віддаленого авторства, де користувач має певні вказівки щодо його наслідків. Наприклад, ресурс, який раніше було створено за допомогою запиту PUT або ідентифіковано за допомогою поля заголовка Location після відповіді 201 (Створено) на запит POST, може дозволити відповідний запит DELETE, щоб скасувати ці дії. Аналогічно, користувацькі реалізації агентів користувача, які реалізують функцію авторства, такі як клієнти контролю ревізій, що використовують HTTP для віддалених операцій, можуть використовувати DELETE на основі припущення, що простір URI на сервері було створено відповідно до сховища версій.
Якщо метод DELETE успішно застосовано, сервер-джерело ПОВИНЕН надіслати код стану 202 (Прийнято), якщо дія, ймовірно, буде успішною, але ще не була виконана, код стану 204 (Немає вмісту), якщо дію було виконано і не потрібно надавати жодної додаткової інформації, або код стану 200 (ОК), якщо дію було виконано, а повідомлення-відповідь містить подання, що описує стан.
Вантаж у повідомленні запиту DELETE не має визначеної семантики; надсилання тіла запиту DELETE може призвести до відхилення запиту деякими існуючими реалізаціями.
Відповіді на метод DELETE не можна кешувати. Якщо запит DELETE проходить через кеш, який має одну або кілька збережених відповідей для ефективного URI запиту, ці збережені відповіді будуть недійсними (див. розділ 4.4 [RFC7234]).
Опис методу DELETE
Приклад для HTTP-методу DELETE
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
Content-Type: application/json
Date: Mon, 31 July 2023 14:58:12 GMT
Server: Apache/2.4.7 (Ubuntu)
Cache-Control: no-store