我应该为成功的HTTP DELETE请求返回410 Gone吗?

时间:2014-01-09 16:03:02

标签: rest http-status-code-410 http-delete

我正在ReST API上实现DELETE支持(在ServiceStack上构建),并想知道成功删除后要返回的响应代码。

HTTP将410定义为:

  

服务器上不再提供所请求的资源,并且不知道转发地址。预计这种情况将被视为永久性的。具有链接编辑功能的客户端应该在用户批准后删除对Request-URI的引用。如果服务器不知道或无法确定条件是否是永久性的,则应该使用状态代码404(未找到)。除非另有说明,否则此响应是可缓存的。

现在,如果资源刚刚DELETE d,我可能确实希望应用其中的许多建议......但是,在成功{{1}之后,接受的做法似乎会返回200 OK - 特别是因为DELETE范围应该表示错误条件。

任何令人信服的论据都超出了HTTP规范中的指导原则?

1 个答案:

答案 0 :(得分:10)

RFC 2616 Section 9.7明确说明了DELETE的回复:

  

成功的回复应该是200(OK),如果   响应包括描述状态的实体,   202(已接受)如果尚未采取行动   已执行,或204(无内容),如果已采取行动   已颁布,但回复不包括实体。