是否应该为 404 和 204 响应设置 Content-Type 标头?

And*_*iak 3 rest http

我计划使用 HTTPHEAD /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
Run Code Online (Sandbox Code Playgroud)

所有其他资源都返回 JSON 响应。我应该删除Content-Type页眉和它很重要的204404式的反应?

Ste*_*ich 5

Content-Type首部用于由客户端解释的内容。如果没有内容(如一般的 HEAD 请求或其他请求的状态代码 204),则不需要Content-Type标头,因为不需要对(零)内容进行解释。但它也无害,即它会被简单地忽略。

如果您发送状态代码为 404 的内容(HEAD 不允许),那么您还应该发送一个Content-Type标头,如果您不发送内容(即Content-length: 0),那么您不需要添加这样的标头。