浏览器如何决定哪些内容是 HTML
我曾经认为 HTML 页面的 CONTENT-TYPE 标头告诉浏览器内容是否为 html。我有一个代理编码,我在其中检查内容类型是否有 text/html 来决定其是否为 HTML。
这工作正常,直到我找到一个 URL:
http://www.movingcenter.com/mc。 dll?page=home
此 URL 响应标头是:
连接关闭 日期 2011 年 4 月 19 日星期二 17:32:35 GMT 服务器微软-IIS/6.0 X-由 ASP.NET 提供支持
如何有效地确定页面是否为 HTML。在这种情况下,我知道是这样。
谢谢 斯帕什·古普塔
I used to believe that CONTENT-TYPE header of a HTML page tells the browser that the contents are html or not. I have a proxy coded where I was checking content-type has text/html to decide if its HTML or not.
This works fine until I found a URL:
http://www.movingcenter.com/mc.dll?page=home
This URLs response headers are:
Connection close Date Tue, 19 Apr 2011 17:32:35 GMT Server Microsoft-IIS/6.0 X-Powered-By ASP.NET
How can I effectively decide if the page is HTML or not. In this case I know it is.
Thanks
Sparsh Gupta
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
— http://www.w3.org/Protocols/rfc2616/ rfc2616-sec7.html#sec7.2.1
因此,您可以检查消息正文的开头,看看是否可以发现doctype 或其中的任何 HTML 标签。
— http://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html#sec7.2.1
So, you could inspect the start of the message body and see if you can spot a doctype or any HTML tags in it.
浏览器应使用 Content-Type 属性来确定文档的 MIME 类型,并且服务器应始终发送该类型。然而,答案是这取决于浏览器。例如,Internet Explorer 有一组用于确定内容类型的规则(“内容嗅探”)。 这是一篇很棒的总结文章。虽然我觉得建议您使用 IE 之类的东西很奇怪,但您可以使用类似的技术来检测内容类型。
Browsers should use the Content-Type property to determine the MIME type of the document and servers should always send one. However, the answer is that it depends on the browser. Internet Explorer, for example, has a set of rules ("content sniffing") for determining the content type. This is a great summary article. While I feel strange suggesting that you do something like IE, you could use similar techniques to detect the content type.