REST中成功的DELETE语句的HTTP状态返回码是什么?

And*_*ili 25 java rest spring web-services spring-mvc

我正在研究如何Spring处理REST Web服务(但我不知道它是否是Spring相关的答案,或者更一般地说它只与REST概念相关).

所以我的疑问是:成功的DELETE语句的HTTP状态返回代码究竟是什么?

204还是200

我知道200意味着我的请求得到了正确的实现但是在线阅读在我看来,我希望它在成功获得GET返回内容之后而不是在删除之后.

在某处我发现204状态是在成功的PUT或DELETE之后获得的.这是真的吗?我无法理解,这意味着响应是空的,为什么空响应意味着PUT或DELETE操作成功了?

Ped*_*eck 59

对于每种方法,HTTP状态代码是正确的,没有严格的规则.这取决于究竟发生了什么,需要向客户发送什么信息等等.我可以想到几个例子:

  • 成功DELETE,没有进一步的信息.204 No Content

  • 一个成功的DELETE,但你有关于应该删除的相关孤儿资源的警告.200 OK.

  • 您已接受该DELETE请求,但可能需要很长时间才能以异步方式执行此操作.客户应该稍后检查.202 Accepted.

  • 您接受了该DELETE请求,但无法删除该资源,而是将URI重置为默认值.205 Reset Content.


Nei*_*gan 6

空响应主体并不意味着删除成功,成功删除(通常)意味着响应主体为空.

RESTful API没有官方状态代码列表,但大多数人都认为204是成功删除的良好响应代码,因为删除内容后通常没有理由返回响应主体.

通常,如果操作成功并且响应主体为空,则返回204.如果操作是成功的并且响应主体不为空,则返回200