我曾经认为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
答案 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这样的事情,你可以使用类似的技术来检测内容类型。