2014-01-09 3 views
3

ReST API (ServiceStack을 기반으로 빌드)에서 DELETE 지원을 구현하고 성공적인 DELETE 다음에 반환 할 응답 코드가 궁금합니다.HTTP DELETE 요청에 대한 응답으로 410 Gone을 반환해야합니까?

요청한 리소스를 더 이상 사용할 서버에 있으며 없으며 전달 주소를 알 수 없습니다 :로

HTTP 410을 정의하지 않는다. 이 상태는 영구적 인 것으로 간주됩니다. 링크 편집 기능을 가진 클라이언트는 사용자 승인 후 Request-URI에 대한 참조를 삭제해야합니다 (SHOULD). 서버가 상태를 알지 못하거나 결정할 수있는 기능이 없으면 상태 코드 404 (찾을 수 없음)를 대신 사용해야합니다. 이 응답은 다르게 표시되지 않는 한 캐시 가능합니다. 4XX 범위는 특히 이후 - 이제

자원 그냥 DELETE D 있었는지, 나는 아마 ... 적용 할 그 권고의 많은 싶어하지만 실제로는 성공 DELETE 다음은 200 OK을 반환하는 것으로 보인다 가능 오류 조건을 나타내는 것으로 가정합니다.

HTTP 사양의 가이드 라인을 뛰어 넘는 어떤 다른 주장이 있습니까?

+0

DELETE 요청은 모두 삭제 작업에 관한 것이므로 해당 작업이 성공적으로 완료되었으므로 200으로 응답해야합니다. 나중에 누군가가 GET을 통해 리소스를 요청하면, 그의 행동은 리소스를 얻는 것이 전부이며, 따라서 단순화를 위해 일부 4xx, 아마도 410 또는 404로 대답해야합니다. – ToBe

답변

8

RFC 2616 Section 9.7 구체적 DELETE에 대한 응답에 대하여 다음 상태 :

성공적인 응답 같아야 200 (OK)을 응답 동작이있는 경우의 상태, 202 (허용)를 설명하는 엔티티를 포함한다면 아직 이 아니거나, 행동이 제정되었지만 응답에 엔티티가 포함되어 있지 않은 경우 204 (콘텐츠 없음).

관련 문제