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

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

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

204还是200

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

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

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

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

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

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

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

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

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

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

空响应并不意味着操作成功,HTTP错误代码应该表示成功/失败,并且响应正文可能包含数据,也可能不包含数据。

响应主体可以包含关于请求的附加信息,例如,要显示给UI的特定消息,关于信息的统计信息或定时信息等等。 但它没有必要 ,并且身体的目的是信息/诊断,如果它存在。

2xx表示请求成功。 xx只允许您更具体地了解发生的事情(服务器执行或返回的内容)。