2011-04-19 60 views
1

我曾經相信HTML頁面的CONTENT-TYPE標題告訴瀏覽器內容是否爲html。我有一個代理編碼,我檢查內容類型有文本/ HTML來決定它的HTML或不。瀏覽器如何決定哪些內容是HTML

,直到我發現了一個網址也能正常工作:

http://www.movingcenter.com/mc.dll?page=home

此網址響應頭:

Connection close 
Date Tue, 19 Apr 2011 17:32:35 GMT 
Server Microsoft-IIS/6.0 
X-Powered-By ASP.NET 

我怎樣纔能有效地確定該網頁是HTML或不。在這種情況下,我知道它是。

由於 Sparsh古普塔

回答

2

含有實體主體應該包括一個Content-Type首部字段限定了主體的媒體類型的任何HTTP/1.1消息。當且僅當媒體類型不是由內容類型字段給出時,接收者可以嘗試通過檢查媒體類型的內容和/或用於標識資源的URI的名稱擴展來猜測媒體類型。如果媒體類型不明,接收者應該將其視爲「application/octet-stream」類型。

- http://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html#sec7.2.1

所以,你可以檢查郵件正文的開始,看看你是否能發現一個文檔類型或任何HTML標籤。

0

瀏覽器應該使用Content-Type屬性來確定文檔的MIME類型,並且服務器應該總是發送一個。但是,答案是取決於瀏覽器。例如,Internet Explorer具有一組用於確定內容類型的規則(「內容嗅探」)。 This is a great summary article。雖然我覺得奇怪的建議你做類似IE的東西,但你可以使用類似的技術來檢測內容類型。