當前位置:
首頁 > 知識 > 瀏覽器User-Agent的前世今生

瀏覽器User-Agent的前世今生


Python部落(python.freelycode.com)組織翻譯,禁止轉載,歡迎轉發。



一切的開始還得從

NCSA Mosaic

說起,

Mosaic

是由國家超級計算機應用中心開發的一款瀏覽器。稱作

NCSA_Mosaic/2.0

Windows 3.1

)」,

Mosaic

支持在文本中展示圖片,因此瀏覽器變的非常有趣了。



然而很快就出現了一個全新的瀏覽器,那就是著名的

Mozilla

,它被稱為「

Mosaic

殺手」,然而

Mosaic

顯得不高興了,於是後來

Mozilla

更名為

Netscape

Netscape

自稱「

Mozilla/1.0(Win3.1)

」,事情開始變得更加有趣了。

Netscape

支持框架,框架深受大家喜愛便流行開來,但是

Mosaic

不支持框架,於是網站管理員探測瀏覽器的

User-Agent

,對

Mozilla

瀏覽器發送含有框架的頁面,對非

Mozilla

瀏覽器發送沒有框架的頁面。




後來

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

可以收到含有框架的頁面了,所有微軟的人都很高興,但是網站管理員卻為此大為苦惱。



微軟將

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

的技術。




Gecko

表現出色,而

Internet Explorer

比不過它,之後嗅探規則變了,

Gecko

的瀏覽器被發送了更優秀的代碼,而其他瀏覽器卻不是。那些使用

Linux

的人對此很難過,因為他們編寫了

Konqueror

,它的引擎是

KHTML

,他們認為

KHTML

Gecko

一樣優秀,但卻因為不是

Gecko

不能接收好的頁面,於是

Konqueror

開始將自己偽裝成「

like Gecko

」,並自稱「

Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko)

」。事情變得有些複雜了。



這時

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)

」。




之後蘋果使用

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)

」,它提供了更加優秀的代碼,但是需要網站管理員的指令。




此時谷歌使用

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

最後完全混亂了,而且毫無章法,所有瀏覽器都偽裝成其它的瀏覽器,致使整個事情變得混亂有趣!




英文原文:https://webaim.org/blog/user-agent-string-history/


譯者:譚冰



喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python程序員 的精彩文章:

用Python製作3D動畫

TAG:Python程序員 |