응답 본문이 HTTP-DELETE- 요청에 허용됩니까?


82

나는 응답 코드 200이 항상 응답 본문을 허용한다고 가정하지만 DELETE 요청에 대한 응답 본문에 대한 명시적인 언급을 찾을 수 없습니다.

답변:


139

여기 RFC 에 명시 적으로 언급되어 있습니다.

짧은 대답은 다음과 같습니다.

당신은 포함해야 당신이 돌아 오면 삭제 된 항목 / 리소스를 설명하는 엔티티와 응답 본체 (200) .

202 는 비동기 요청 / 응답 반환 상태와 같습니다.

204 는 응답 본문을 포함하지 않는다고 명시 적으로 말합니다.


2
HTTP 사양을 참조하도록 찬성합니다. 또한 그들이 HTTP 사양을 업데이트하고 여기에서 많은 문제를 명확히하고 있음을 알아 두십시오. tools.ietf.org/wg/httpbis
Darrel Miller

9
+1하지만 사양에 따르면 응답 본문에 항목이 삭제되지 않고 "상태를 설명하는"항목이 포함되어 있으면 200 ok를 반환 할 수 있습니다.
naikus

1
실제로 "설명하는 개체 포함 말한다 그래서 플래그가 완전히 유효한 것 같다"삭제 "를 삭제 된 개체를 반환 - 상태".
Ryan Wheale 2014 년

202 (수락 됨) 응답에 본문이 포함되어야합니까?
Soullivaneuh

15

예, 일반적으로 W3C 사양에 따라 200 응답 코드로 응답해야합니다 .

9.7 삭제

DELETE 메소드는 Request-URI로 식별 된 자원을 원 서버가 삭제하도록 요청합니다. 이 방법은 원 서버에서 사람의 개입 (또는 다른 수단)에 의해 무시 될 수 있습니다. 클라이언트는 원본 서버에서 반환 된 상태 코드가 작업이 성공적으로 완료되었음을 나타내더라도 작업이 수행되었음을 보장 할 수 없습니다. 그러나 서버는 응답이 제공 될 때 리소스를 삭제하거나 액세스 할 수없는 위치로 이동하려는 경우가 아니면 성공을 나타내면 안됩니다.

성공적인 응답은 응답에 상태를 설명하는 엔티티가 포함 된 경우 200 (OK), 조치가 아직 제정되지 않은 경우 202 (수락 됨), 조치가 제정되었지만 응답에 포함되지 않은 경우 204 (No Content) 여야합니다. 엔티티.

요청이 캐시를 통과하고 Request-URI가 현재 캐시 된 하나 이상의 엔티티를 식별하는 경우 해당 항목은 오래된 것으로 처리해야합니다 (SHOULD). 이 메서드에 대한 응답은 캐시 할 수 없습니다.


2
언어를 잘못 읽었습니다. 코드는 오름차순으로 나열되며 순서는 선호하는 응답을 의미하지 않습니다. 200, 202 또는 204 응답 각각은이 텍스트에 설명 된대로 동등하게 허용됩니다. SHOULD는 코드가 일반적인 규칙으로 구현된다는 것을 의미합니다 (예 : 200은 본문을 포함하고 204는 포함하지 않음).
George Shaw
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.