User Agent的歷史變遷

轉自: http://www.82cs.com/201010/27/user-ageng/   有刪改


一般用戶都不會注意瀏覽器的User Agent,做WEB的都應該明白。它是包含在HTTP Header中的一個字段,其作用是表明瀏覽器的身份,也就是哪種瀏覽器。

但事實是,絕大多數瀏覽器都以Mozilla的字樣開頭,比如IE、Chrome,並不能真正的區分瀏覽器。那麼看完下面的文章你就明白UA中Mozilla的歷史了,同時你也會感覺到這個世界是如此的混亂。


最早的時候有一個瀏覽器叫NCSA Mosaic,把自己標稱爲NCSA_Mosaic/2.0 (Windows 3.1),它支持文字顯示的同時還支持圖片,於是Web開始好玩起來。


然後出現了一個新的網頁瀏覽器,“Mozilla”,其實就是“Mosaic終結者”的意思,這搞的Mosaic很不爽,(畢竟Mosaic出道早,江湖老),新瀏覽器最後正式公佈的名稱是Netscape,它把自己標稱爲Mozilla/1.0 (Win3.1),更好玩了。Netscape支持框架顯示,後來框架在大家中間流行起來了,但Mosaic不支持框架啊,於是偉大的“用戶代理人探測”技術出現了,如果是“Mozilla”,那就發給支持框架的頁面,至於其他的瀏覽器,則發給不含框架的頁面。


Netscape想逗Microsoft玩兒,把Windows叫做“幾乎不曾做過調試的設備驅動器”,後者很惱火。Microsoft於是推出了自己的 網頁瀏覽器,叫做Internet Explorer,希望它能成爲“Netscape終結者”。Internet Explorer也支持框架,但它不是Mozilla啊,所以沒人給它發送帶有框架的頁面。Microsoft慢慢煩躁起來,不再寄希望於網站管理員逐漸 認識IE並給它發框架,而是宣稱自己是“兼容Mozilla”的,開始模仿Netscape,把自己標稱爲Mozilla/1.22 (compatible; MSIE 2.0; Windows 95),這樣Internet Explorer也能收到框架了,整個Microsoft狂喜,但網站管理員開始有點被搞糊塗了。


Microsoft把IE和Windows一起賣,並且把產品也弄得比Netscape更好了,拉開了第一場瀏覽器之戰。結果和大家知道的一樣,Netscape被幹掉了,Microsoft大勝、大喜。但是後來Netscape以Mozilla的新名稱重生了,構造了Gecko,標稱其爲Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1) Gecko/20020826,Gecko屬於渲染引擎,表現優異。Mozilla開發了Firefox,標稱爲Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0,並且Firefox表現也非常優秀。Gecko擴張迅速,一些瀏覽器使用了它的代碼並標稱爲Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.2) Gecko/20040825 Camino/0.8.1 ,這是一個,還有Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.8) Gecko/20071008 SeaMonkey/1.0,另一個,它們都僞裝成Mozilla,同時也都是基於Gecko支持的。


Gecko表現優秀,IE則很差勁,於是身份甄別再次發生,輸送給Gecko的是設計良好的網頁代碼,其他瀏覽器就沒有這個待遇了。Linux的跟隨者很傷心,因爲他們創建了基於KHTML引擎支持的Konqueror,但卻不會被輸送好代碼,雖然他們自己認爲KHTML和Gecko一樣優秀,於是Konquerer開始僞裝自己“像Gecko”那樣以得到好的網頁,並標稱自己爲Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko),這個世界更讓人困惑了.


後來出現了Opera這樣的主兒,宣稱“允許用戶自己決定讓瀏覽器裝成誰”,它的菜單中提供了Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.51, Mozilla/5.0 (Windows NT 6.0; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51,Opera/9.51 (Windows NT 5.1; U; en) 供大家來選擇,選誰是誰。


Apple開發了Safari,使用了KHTML,同時也增加了很多新特性,後來乾脆一鍋煮,另起爐竈叫了WebKit,但是它有希望能夠得到那些爲KHTML編寫的網頁,於是Safari標稱自己爲Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5,這個世界更混亂了。

Microsoft越來越擔心Firefox的發展,重新啓動了Internet Explorer的開發,標稱自己爲Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) ,可以很好的渲染代碼,但那要看網站管理員是否指示它這麼做。


Google也開發了自己的瀏覽器Chrome, 使用了Webkit,有點像Safari,希望能得到爲Safari編寫的網頁,於是決定裝成Safari。這樣啊,Chrome使用了WebKit渲染 引擎,想裝成Safari,而WebKit呢又僞裝自己是KHTML,KHTML呢又是僞裝成Gecko的,同時所有的瀏覽器又都宣稱自己是 Mozilla,於是,Chrome宣稱自己是Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13,,UserAgent字符串徹底混亂了,也幾乎不再發揮任何作用,每個人都宣稱自己是別人,混亂充斥人間啊。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章