我需要http获取请求的内容types吗?

据我所知有两个地方设置内容types:

  1. 客户端为他发送给服务器的主体设置一个内容types(例如,用于发布)
  2. 服务器设置响应的内容types。

这是否意味着我不必或不应该为我的所有请求(客户端)设置内容types。 如果我可以或应该是什么样的内容types?

另外我在几篇文章中读到,客户端的内容types指定了客户端想要接收什么types的内容。 所以也许我的观点1是不正确的?

根据RFC 7231第3.1.5.5节 :

生成包含有效载荷主体的消息的发送者应该在该消息中生成Content-Type头字段 ,除非发送者不知道所包含的表示的预期媒体types。 如果 Content-Type头域不存在,接收者可以采用媒体types“application / octet-stream”( [RFC2046],4.5.1节 )或者检查数据来确定它的types。

这意味着Content-Type HTTP头只能设置为PUTPOST请求。

获取请求不应该有内容types,因为他们没有请求实体(即一个主体)

GET请求可以有“接受”标题,表示客户端可以理解的内容types。 然后服务器可以使用它来决定要发回的内容types。

他们是可选的。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1

被接受的答案是错误的。 引用是正确的,断言PUT和POST必须有它是不正确的。 没有要求PUT或POST实际上有额外的内容。 也没有禁止GET实际上有内容。

RFC明确地说明了它们的含义。如果你的方(客户端或者原始服务器)将会发送额外的内容,除了HTTP标题之外,它应该指定一个Content-Type头。 但是请注意,可以省略Content-Type,并且仍然包含内容(比如,使用Content-Length标头)。