未指定此类标头时,浏览器如何知道内容类型?
Posted
技术标签:
【中文标题】未指定此类标头时,浏览器如何知道内容类型?【英文标题】:How does browser know the content type when such header is not specified? 【发布时间】:2010-12-01 10:48:30 【问题描述】:如果服务器不发送 content-type 标头,浏览器如何判断他得到了哪种内容?例如,当我使用 chrome 获得 SO logo 时,图像是完整的,尽管服务器没有说明它的扩展名(至少,明确地)
【问题讨论】:
对于它的价值,您链接的 SO 徽标在这里带有Content-Type: image/png
标题。
好吧,httpdebuggerpro 没有向我展示这个
【参考方案1】:
如果类型未在 HTTP 标头中明确声明,大多数浏览器都会进行内容嗅探。他们正在寻找他们知道的特定签名,从而猜测媒体类型。
有关示例,请参阅Determining the type of a new resource in a browsing context in the html 5 specification 部分或此Draft of Content-Type Processing Model。
【讨论】:
【参考方案2】:它可以通过检查文件来猜测内容类型。
例如,PNG 在前 4 个字节中有“PNG”。
【讨论】:
【参考方案3】:不同的浏览器以不同的方式处理它。
Internet Explorer 猜测 based on content。实际上经常忽略Content-Type
标头,而是使用自己的猜测。
一些浏览器也会考虑扩展。
【讨论】:
以上是关于未指定此类标头时,浏览器如何知道内容类型?的主要内容,如果未能解决你的问题,请参考以下文章
使用“application/x-www-form-urlencoded”内容类型请求标头时,未正确发送 HttpClient 后正文参数