Чи дозволено тіло відповіді на запит HTTP-DELETE?


82

Я припускаю, що код відповіді 200 завжди дозволяє тіло відповіді, але я не можу знайти явної згадки про тіла відповіді для запитів DELETE.

Відповіді:


139

Це прямо згадується тут у RFC

Коротка відповідь:

Ви повинні включити тіло відповіді із суттю, що описує видалений елемент / ресурс, якщо ви повертаєте 200 .

202 - це щось на зразок асинхронного статусу повернення запиту / відповіді.

204 прямо говорить, що ви не включаєте тіло відповіді


2
Голос за посилання на специфікацію HTTP. Також майте на увазі, що вони оновлюють специфікацію HTTP і з'ясовують багато питань тут tools.ietf.org/wg/httpbis
Даррел Міллер

9
+1 Але специфікація говорить, що ви можете повернути 200 нормально, якщо тіло відповіді містить сутність, "що описує статус", а не сутність, видалену.
naikus

1
Це на самому справі говорить «включає в себе об'єкт , що описує в стан» - так повернутої віддалений об'єкт з «видалено» прапор здається повністю дійсним.
Райан Віл

Повинна відповідь 202 (Прийнята) включати тіло?
Soullivaneuh

15

Так, зазвичай вам слід відповісти кодом відповіді 200 відповідно до специфікації W3C :

9.7 ВИДАЛИТИ

Метод DELETE просить сервер-джерело видалити ресурс, визначений Request-URI. Цей метод МОЖЕ бути замінений втручанням людини (або іншими способами) на вихідному сервері. Клієнту не можна гарантувати, що операція була виконана, навіть якщо код стану, повернутий із вихідного сервера, вказує на те, що дія була успішно виконана. Однак сервер НЕ ПОВИНЕН вказувати на успіх, якщо на момент надання відповіді він не має наміру видалити ресурс або перемістити його в недоступне місце.

Успішна відповідь ПОВИННА бути 200 (OK), якщо відповідь включає сутність, що описує статус, 202 (Прийнята), якщо дія ще не здійснена, або 204 (Без вмісту), якщо дія була здійснена, але відповідь не включає сутність.

Якщо запит проходить через кеш, а Request-URI ідентифікує одну або кілька кешованих сутностей, ці записи ПОВИННІ розглядатися як застарілі. Відповіді на цей метод не можна кешувати.


2
Ви неправильно прочитали мову. Коди перераховані у порядку зростання, і порядок не передбачає бажаної відповіді. Кожна з відповідей 200, 202 або 204 однаково прийнятна, як описано в цьому тексті. ПОВИНЕН означати лише те, що коди реалізовані зі звичайними умовами (наприклад, 200 включає тіло, а 204 - ні).
Джордж Шоу
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.