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

发布于 2024-11-02 11:16:44 字数 464 浏览 1 评论 0原文

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

这工作正常,直到我找到一个 URL:

http://www.movi​​ngcenter.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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦里人 2024-11-09 11:16:44

任何包含实体主体的 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 标签。

Any HTTP/1.1 message containing an entity-body SHOULD include a Content-Type header field defining the media type of that body. If and only if the media type is not given by a Content-Type field, the recipient MAY attempt to guess the media type via inspection of its content and/or the name extension(s) of the URI used to identify the resource. If the media type remains unknown, the recipient SHOULD treat it as type "application/octet-stream".

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.

吖咩 2024-11-09 11:16:44

浏览器应使用 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文