没有响应正文的帖子,哪个响应代码更好 201 或 204?

dan*_*y74 7 http node.js restful.js

为了发出 HTTP 请求,我们使用 node 的restful.js

它发出警告:

您应该返回一个带有空正文的 204 状态代码。

我们的请求是一个 POST(这显然创建了一个资源)。

请求成功。响应正文为空。我们的响应代码是 201。

我们应该返回 201(创建)还是 204(无内容)响应代码?

restful.js 是不是太热心了?

Kon*_*nin 16

实际上选择的答案没有考虑到响应正文将为空

带有代码201 Created 的响应不仅意味着“已创建”,而且意味着“新资源在消息正文中返回”。

RFC 7231 中代码 201 的说明:https ://httpwg.org/specs/rfc7231.html#status.201

因此,对于正文204 No Content的成功响应似乎更适合。

更新: 另一方面,POST 操作返回空正文并不典型,因为通常在 REST API 中,POST 请求不仅创建资源,而且在回复中返回创建的资源。所以 body 不为空,HTTP 代码为 201。


ale*_*mac 8

这取决于您正在执行的操作类型。如果您正在创建新对象,则返回 201 状态,更新或删除 - 204。

201 已创建

该请求已得到满足,并导致创建一个或多个新资源。请求创建的主要资源由响应中的 Location 标头字段标识,或者如果未接收到 Location 字段,则由有效请求 URI 标识。

204 没有内容

服务器已成功完成请求,并且响应负载正文中没有其他内容可发送。