Разрешено ли тело ответа для HTTP-DELETE-запроса? - PullRequest
72 голосов
/ 05 июля 2011

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

Ответы [ 2 ]

123 голосов
/ 05 июля 2011

Это явно упомянуто здесь в RFC

Краткий ответ:

Вы должны включить тело ответа с сущностью, описывающей удаленный элемент / ресурс, если вы вернете 200 .

202 - это что-то вроде состояния асинхронного возврата / запроса.

204 прямо говорит, что вы не включаете тело ответа

15 голосов
/ 05 июля 2011

Да, вы обычно должны отвечать кодом ответа 200 согласно спецификации W3C :

9,7 УДАЛИТЬ

Метод DELETE запрашивает, чтобы сервер происхождения удалить ресурс идентифицируется запросом-URI. это метод МОЖЕТ быть отменен человеком вмешательство (или другие средства) на Исходный сервер. Клиент не может быть гарантировано, что операция была выполняется, даже если код статуса вернулся с исходного сервера указывает на то, что действие было успешно завершено. Тем не менее сервер НЕ ДОЛЖЕН указывать на успех если, в то время как ответ учитывая, он намерен удалить ресурс или переместить его в недоступный место.

Успешный ответ ДОЛЖЕН быть 200 (ОК), если ответ содержит субъект, описывающий статус, 202 (Принято), если действие еще не был принят или 204 (без содержания), если действие было принято, но Ответ не включает сущность.

Если запрос проходит через кеш и Request-URI идентифицирует один или в настоящее время кэшированные объекты, те, Записи ДОЛЖНЫ рассматриваться как устаревшие. Ответы на этот метод не являются кэшируется.

...