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

来源:互联网 发布:pt p700 打印软件 编辑:程序博客网 时间:2024/06/06 16:53

浏览器如何判断一个文档的类型是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 截图