浏览器如何确定哪些内容是HTML

时间:2011-04-19 18:01:47

标签: html browser http-headers

我曾经认为HTML页面的CONTENT-TYPE标题告诉浏览器内容是否为html。我有一个代理编码,我在检查内容类型有text / html来决定它的HTML是否。

这一切正常,直到我找到了一个网址:

http://www.movingcenter.com/mc.dll?page=home

此网址回复标题为:

Connection    close
Date  Tue, 19 Apr 2011 17:32:35 GMT
Server    Microsoft-IIS/6.0
X-Powered-By  ASP.NET

如何有效地确定页面是否为HTML。在这种情况下,我知道它是。

由于 Sparsh Gupta

2 个答案:

答案 0 :(得分:2)

  

包含实体主体的任何HTTP / 1.1消息应该包括定义该主体的媒体类型的Content-Type头部字段。当且仅当媒体类型不是由Content-Type字段给出时,接收者可以尝试通过检查其内容和/或用于标识资源的URI的名称扩展来猜测媒体类型。如果媒体类型仍然未知,则收件人应该将其视为“application / octet-stream”类型。

- http://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html#sec7.2.1

因此,您可以检查邮件正文的开头,看看是否可以在其中找到doctype或任何HTML标记。

答案 1 :(得分:0)

浏览器应使用Content-Type属性来确定文档的MIME类型,服务器应始终发送一个。但是,答案是它取决于浏览器。例如,Internet Explorer具有一组用于确定内容类型的规则(“内容嗅探”)。 This is a great summary article。虽然我觉得奇怪的是你做了像IE这样的事情,你可以使用类似的技术来检测内容类型。