【发布时间】:2019-08-07 16:57:25
【问题描述】:
我计划使用 HTTP HEAD /products/{product_id} 请求作为低带宽方式来确定产品是否存在。
如果是,我打算返回204 No Content。如果没有,我打算返回404 Not Found。
在我的 HTTP 服务中,有一些中间件添加了 Content-Type: application/json。
最后的回应是
HTTP/1.1 204 No Content
Content-Type: application/json
Vary: Origin
Date: Wed, 07 Aug 2019 16:50:08 GMT
所有其他资源都返回 JSON 响应。我应该删除 Content-Type 标头吗?这对于 204 和 404 类型的响应是否重要?
【问题讨论】:
-
没有内容的响应(例如 204)根据定义不需要内容类型。如果提供,它将被忽略。
-
在这里使用
HEAD有点牵强。 HEAD is identical to GET, except that no content is returned。因此,如果您要响应带有内容的 GET 请求,那么按照规范,您还应该为您的 HEAD 响应包含所有相同的标头,包括Content-Type——只是没有内容。如果您不使用 GET 请求发送任何内容,则 GET 或 HEAD 请求都不需要 Content-Type。