浏覽器如何判斷一個文檔的類型是txt,還是html?還是JPG? 還是XML ? .... 不同的文檔類型應該使用不同的方式去顯示。
比較标準的判斷文檔類型依據是:
1) 通過HTTP 請求資料包header的Content-Type值
2)通過檔案擴充名
于是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 截圖
本文轉自 陳本峰 51CTO部落格,原文連結:http://blog.51cto.com/wingeek/273599,如需轉載請自行聯系原作者