您的位置:首页 > 其它

[Web开发] IE 如何判断文件的类型

2009-02-11 09:57 423 查看
浏览器如何判断一个文档的类型是txt,还是html?还是JPG? 还是XML ? .... 不同的文档类型应该使用不同的方式去显示。



比较标准的判断文档类型依据是:

1) 通过HTTP 请求数据包header的Content-Type值

2)通过文件扩展名



但是这2个依据并不是每次都可靠的。有很多服务器没有被很好配置,于是就没有content-type这项。另外,很多动态的PHP/ASP生成的内容都是没有文件扩展名的,比如http://123.com/a.php?abc=xyz 这种URL。



于是IE 加入了另外一个依据:

3) 根据文档的数据内容来判断文档类型



不同的文档类型有不同的数据特征,通过这些特征来确定类型。





但是,有些时候Web开发者并不希望这么IE 自动判断,怎么办? IE8里面新增了一个HTTP请求数据包header的属性X-Content-Type-Options。 可以通过使用X-Content-Type-Options:nosniff 选项来关闭IE的文档类型自动判断功能。



HTTP/1.1 200 OK
Content-Length: 108
Date: Thu, 26 Jun 2008 22:06:28 GMT
Content-Type: text/plain;
X-Content-Type-Options: nosniff
<html>
<body bgcolor="#AA0000">
This page renders as HTML source code (text) in IE8.
</body>
</html>


以上这段代码在IE8下就会显示成纯文本,因为Content-Type: text/plain;定义了该文档是txt文件。



但是在IE7下就会显示成一个HTML文件,因为IE7通过这个文档的数据(HTML代码)判定这是一个HTML文件。





IE8 截图





IE7 截图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: