【发布时间】:2022-04-13 22:20:32
【问题描述】:
为了发出 HTTP 请求,我们使用节点的restful.js
它正在发出警告:
您应该返回一个带有空正文的 204 状态代码。
我们的请求是一个 POST(这显然是创建一个资源)。
请求成功。响应正文为空。我们的响应代码是 201。
我们应该返回 201(已创建)还是 204(无内容)响应代码?
restful.js 是不是太热心了?
【问题讨论】:
标签: node.js rest http restful.js
为了发出 HTTP 请求,我们使用节点的restful.js
它正在发出警告:
您应该返回一个带有空正文的 204 状态代码。
我们的请求是一个 POST(这显然是创建一个资源)。
请求成功。响应正文为空。我们的响应代码是 201。
我们应该返回 201(已创建)还是 204(无内容)响应代码?
restful.js 是不是太热心了?
【问题讨论】:
标签: node.js rest http restful.js
实际选择的答案没有考虑到响应正文将为空。
响应代码201 Created不仅表示“已创建”,还表示“新资源在消息正文中返回”。
RFC 7231 中代码 201 的描述:https://httpwg.org/specs/rfc7231.html#status.201
因此,对于空正文 204 No Content 的成功响应似乎更适合。
【讨论】:
这取决于您正在执行的操作类型。如果您正在创建新对象,则返回 201 状态,更新或删除 - 204。
201 创建
请求已完成,并导致创建了一个或多个新资源。 请求创建的主要资源由响应中的 Location 标头字段标识,如果没有收到 Location 字段,则由有效的请求 URI 标识。
204 无内容
服务器已成功完成请求,并且响应负载正文中没有要发送的其他内容。
【讨论】: