04.15 瀏覽器User-Agent的歷史衍變

瀏覽器User-Agent的歷史衍變

l歷史還得追溯到NCSA Mosaic,Mosaic是由國家超級計算機應用中心開發的一款瀏覽器。稱作“NCSA_Mosaic/2.0(Windows 3.1)”,Mosaic支持在文本中展示圖片,因此瀏覽器變的非常有趣了。

瀏覽器User-Agent的歷史衍變

然而很快就出現了一個全新的瀏覽器,那就是著名的Mozilla,它被稱為“Mosaic殺手”,然而Mosaic顯得不高興了,於是後來Mozilla更名為Netscape,Netscape自稱“Mozilla/1.0(Win3.1)”,事情開始變得更加有趣了。Netscape支持框架,框架深受大家喜愛便流行開來,但是Mosaic不支持框架,於是網站管理員探測瀏覽器的User-Agent,對Mozilla瀏覽器發送含有框架的頁面,對非Mozilla瀏覽器發送沒有框架的頁面。

瀏覽器User-Agent的歷史衍變

後來Netscape戲稱微軟的Windows是“非調試過的硬件驅動程序”,結果微軟很生氣。於是微軟開發了自己的網絡瀏覽器Internet Explorer,微軟對Internet Explorer寄予厚望,並希望它可以成為“Netscape殺手”。Internet Explorer也支持框架,但它不像Mozilla可以接收有框架的頁面。微軟很快失去了耐心,它不能坐以待斃,微軟選擇將Internet Explorer兼容Mozilla,開始模仿Netscape,稱Internet Explorer為“Mozilla/1.22(compatible; MSIE 2.0; Windows 95)”,所以Internet Explorer可以收到含有框架的頁面了,所有微軟的人都很高興,但是網站管理員卻為此大為苦惱。

瀏覽器User-Agent的歷史衍變

微軟將Internet Explorer和Windows捆綁銷售,而且把Internet Explorer做得比Netscape更好,第一次瀏覽器大戰一觸即發,結果是Netscape慘敗,微軟更加高興了。但沒想到的是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的技術。

瀏覽器User-Agent的歷史衍變

Gecko表現出色,而Internet Explorer比不過它,之後嗅探規則變了,Gecko的瀏覽器被髮送了更優秀的代碼,而其他瀏覽器卻不是。那些使用Linux的人對此很難過,因為他們編寫了Konqueror,它的引擎是KHTML,他們認為KHTML和Gecko一樣優秀,但卻因為不是Gecko不能接收好的頁面,於是Konqueror開始將自己偽裝成“like Gecko”,並自稱“Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko)”。事情變得有些複雜了。

瀏覽器User-Agent的歷史衍變

這時Opera站出來說“我們應該讓用戶來決定他們想偽裝成哪個瀏覽器。”於是Opera創建了菜單項,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)”。

瀏覽器User-Agent的歷史衍變

之後蘋果使用KHTML渲染引擎開發了Safari,但加入了許多特性,並另闢分支稱之為WebKit,但它仍想為KHTML編寫頁面,所以Safari自稱“Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5”,事情變得更加糟糕了。

微軟十分忌憚Firefox的強大,Internet Explorer重新迴歸,這次它自稱“Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)”,它提供了更加優秀的代碼,但是需要網站管理員的指令。

瀏覽器User-Agent的歷史衍變

此時谷歌使用Webkit作為渲染引擎開發了Chrome,和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”,所以整個瀏覽器的User-Agent最後完全混亂了,而且毫無章法,所有瀏覽器都偽裝成其它的瀏覽器,致使整個事情變得混亂有趣!


分享到:


相關文章: