我正在ReST API上实现DELETE支持(在ServiceStack上构建),并想知道成功删除后要返回的响应代码。
HTTP将410定义为:
服务器上不再提供所请求的资源,并且不知道转发地址。预计这种情况将被视为永久性的。具有链接编辑功能的客户端应该在用户批准后删除对Request-URI的引用。如果服务器不知道或无法确定条件是否是永久性的,则应该使用状态代码404(未找到)。除非另有说明,否则此响应是可缓存的。
现在,如果资源刚刚DELETE
d,我可能确实希望应用其中的许多建议......但是,在成功{{1}之后,接受的做法似乎会返回200 OK
- 特别是因为DELETE
范围应该表示错误条件。
任何令人信服的论据都超出了HTTP规范中的指导原则?
答案 0 :(得分:10)
RFC 2616 Section 9.7明确说明了DELETE
的回复:
成功的回复应该是200(OK),如果 响应包括描述状态的实体, 202(已接受)如果尚未采取行动 已执行,或204(无内容),如果已采取行动 已颁布,但回复不包括实体。