我想知道什么是内容类型,为什么我们需要设置标头请求的内容类型以及可以设置多少类型的标头内容? 如果可能请提供文件。
答案 0 :(得分:4)
Content-Type
向服务器指定它应该期望的数据。如果服务器允许并接受多种类型的内容,则可以使用此字段知道如何解释请求的正文。
例如:如果服务器允许同一端点上的XML和JSON数据,则将Content-Type
设置为:
Content-Type:application / json
会让服务器知道它应该期望请求体包含JSON。虽然通过:
Content-Type:text / xml
会通知服务器期望正文中的XML。
RFC7321 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content在3.1.1.5部分中定义了Content-Type
:
“Content-Type”标题字段表示媒体类型 相关的表示:要么包含在 消息有效负载或选定的表示,由 消息语义。指示的媒体类型定义了两个数据 格式以及收件人要如何处理该数据, 在任何内容之后,在收到的消息语义范围内 Content-Encoding指示的编码被解码。
在Media types注册了1500多个IANA,可以将Content-Type
设置为请求。
3.1.1.5节的最后一段解释了如果未设置Content-Type
,服务器可能会假设数据为application/octet-stream
或以任何方式解释请求。但是:
做客户 所以冒险得出不正确的结论,这可能会暴露出更多 安全风险(例如,“特权升级”)。
当服务器执行此操作时,它被称为Content Sniffing,可以通过设置:
来禁用它X-Content-Type-Options:nosniff
答案 1 :(得分:1)
如果您未设置Content-Type,则您的应用可能无效。
例如,如果您构建的应用程序需要json格式的数据,并且您的标题中未包含Content-Type: application/json
,那么在大多数情况下,您的应用程序都会出现故障。