当消息 body 为空时,是否应该出现 Content-Type header?

Should Content-Type header be present when the message body is empty?

如果没有负载 body,Content-Type header 是否应该出现在 HTTP 请求或响应中?

在这种情况下 HTTP header 的正确组合是否没有 Content-TypeContent-Length 0,或者 Content-Type 不应该出现在所有当消息缺少 body?

RFC 7231 说:

A sender that generates a message containing a payload body SHOULD generate a Content-Type header field in that message [...]

因此它没有明确说明如果您生成的消息 没有 具有有效载荷 body 时该怎么做,但它确实似乎是暗示的在这种情况下不发送 Content-Type header 是合适的。

Content-Length:0 是您向接收者表明不会有 body 的方式,除非您使用的是分块编码之类的东西。