瀏覽器UserAgent的趣味史

1 評論 5657 瀏覽 7 收藏 16 分鐘

編輯導(dǎo)語:User Agent,簡稱UA,中文名為用戶代理,是一種向訪問網(wǎng)站提供你所使用的瀏覽器類型及版本、操作系統(tǒng)及版本、瀏覽器內(nèi)核、等信息的標識。通過這個標識,用戶所訪問的網(wǎng)站可以顯示不同的排版從而為用戶提供更好的體驗或者進行信息統(tǒng)計。接下來,本文作者為我們總結(jié)了其發(fā)展的趣味史。

最近在看《給產(chǎn)品經(jīng)理講技術(shù)》,其中有一段簡要的提到了瀏覽器UserAgent的含義和作用。在最后作者暗示UserAgent的變遷是一段充滿趣味性的歷史,為了滿足我的好(吃)奇(瓜)心理,我去深扒了一下。

結(jié)果不扒不知道,一扒嚇一跳。今天就給大家分享一下這個陳年老瓜。

首先,我們先簡要了解一下各大瀏覽器的出生日期:

瀏覽器UserAgent的趣味史

大家先對這些瀏覽器的出生時間有一個概念,然后大家把板凳和西瓜拿好,讓我們開始吧~

一、第一個瀏覽器:Nexus

1989年,超級大神伯納斯·李教授發(fā)明了萬維網(wǎng)(World Wide Web,簡稱3W),然而大神并不滿足于此,為了大家能更方便地訪問萬維網(wǎng),大神大手一揮,推出了世界上第一款瀏覽器。

李大神尋思給它起個什么名字呢?

此時,李大神可能是懶蟲上身,想也不想,要不就叫World Wide Web,跟大兒子(萬維網(wǎng))一個名字吧!

后來大神感覺交流起來不是很方便,經(jīng)常不知道World Wide Web指的是誰,而且這么偷懶的行為有點對不起小兒子,于是把小兒子的名字改成了Nexus。

由于是瀏覽器的祖師爺,沒有競爭對手,Nexus馬上就流行了起來。

由于是最早的瀏覽器,Nexus只支持文字展示,還不支持圖片展示,而這恰好給了競爭對手可乘之機,同時也是UserAgent的由來。

二、第一個帶圖的瀏覽器:Mosaic

1993年,伊利諾伊的NCSA組織認為沒有圖片的網(wǎng)頁就像失去顏色的世界!作為一群完美主義者,這完全不能忍!

因此他們發(fā)明了第一個可以顯示圖片的瀏覽器:Mosaic(馬賽克),能顯示圖片,但大神們偏偏任性取名叫馬賽克!眾多吃瓜群眾不禁直呼內(nèi)行!

瀏覽器UserAgent的趣味史

由于能顯示圖片的特性,Mosaic迅速流行了起來。但是到這里,大家可能會發(fā)現(xiàn),此時的霸主是Nexus,它是不能顯示圖片的,而Mosaic能顯示,這就叫html的開發(fā)陷入了兩難的境地。

正當html開發(fā)者抓耳撓腮的時候,體貼的Mosaic想到了一個辦法:這本質(zhì)上就是一個身份的問題嘛,那我就在給你發(fā)請求的時候告訴你們我的身份,和Nexus區(qū)分開來不就行了?

這就是UserAgent的由來,它最初的作用只是向服務(wù)器表明自己的身份——Mosaic的UserAgent為:NCSA_Mosaic/2.0 (Windows 3.1)

NCSA_Mosaic代表自己是什么瀏覽器,2.0代表版本號,Windows 3.1表示自己可以在什么系統(tǒng)下運行。

這樣一來,html開發(fā)者該怎么開發(fā)還是怎么開發(fā),只是如果UserAgent表明是Mosaic就發(fā)送帶圖片的網(wǎng)頁,如果不是,就發(fā)送不帶圖片的網(wǎng)頁。

但是,伊利諾伊的大神們到死也不會想到,就這么簡單的一個UserAgent,竟然被后輩們玩出了花。

三、Mosaic殺手:Mozilla

看到Mozilla,大家是不是很眼熟?隨便打開一個瀏覽器,查看它的UserAgent,都會發(fā)現(xiàn)帶有Mozilla標記。是不是很奇怪,為什么不同公司的瀏覽器,不管是IE、谷歌、Safari等,都帶有Mozilla呢?聽我慢慢道來。

在Mosaic如日中天的時候,一頭初生怪獸偏偏不服,它為自己設(shè)立了一個偉大的目標:推翻Mosaic的霸主地位!

這頭初生怪獸就是后來大名鼎鼎的網(wǎng)景公司,他們發(fā)明了一款瀏覽器,希望能夠取代Mosaic!而不愧是初生怪獸,沒別的,就是頭鐵,大神們給他們的瀏覽器取名為:Mozilla。

瀏覽器UserAgent的趣味史

什么意思呢? Mozilla由“Mosaic Killa”(Killa是俚語中Killer的拼法)變化而來,并且是怪獸Godzilla(哥斯拉)的諧音,即“Godzilla eat the Mosaic!”

這就是赤果果的挑釁啊!你看,互聯(lián)網(wǎng)的源頭就充斥著血腥!

Mozilla大聲喝問道:Mosaic你這老頭子怕不怕!Mosaic瑟瑟發(fā)抖(不知道是氣的,還是怕的)地看著這頭狂妄的小怪獸,勃然大怒(惱羞成怒)到:“給老子走開!”

于是網(wǎng)景礙于當時Mosaic的江湖地位,不得已“從心”的把名字改成了Netscape Navigator(網(wǎng)景航海家)。

但是“小怪獸”口服心不服,仍然偷偷地在自己的UserAgent后面寫上了Mozilla/1.0 (Win3.1)。

四、流氓來了:IE

小怪獸還是有點本事的,NetScape最先支持html框架顯示,就是簡單的table布局,內(nèi)外邊距之類,僅僅這點在體驗上就遠超Mosaic。

所以,最后Mozilla如愿”吃掉了”Mosaic,成為了霸主。

開發(fā)者為了區(qū)別這兩個瀏覽器,還是用的UserAgent。約定如果是UserAgent里含有“Mozilla”字樣,就發(fā)送支持框架的頁面,否則就發(fā)送不含框架的頁面。

瀏覽器作為萬維網(wǎng)的入口,從來都是戰(zhàn)略必爭之地,競爭自然無法避免。微軟率先使出了”不要臉“戰(zhàn)術(shù)”,仗著自己的操作系統(tǒng)地位,開發(fā)了一款強行和系統(tǒng)綁定的瀏覽器。

古語云:流氓不可怕,就怕流氓有文化!古人誠不欺我!

那么這個瀏覽器叫什么好呢?

吃瓜群眾:Mozilla killer?

微軟大神:能不能像我們一樣成熟一點?!

務(wù)實的微軟大神們?nèi)∶刹桓氵@些花里胡哨的,直接取名叫IE,即Internet Explore,雖然沒有Mozilla這么霸氣,但是簡單易懂且易記啊。

要想和Mozilla競爭,IE肯定也是支持html框架的,但是開發(fā)者們才不管,開發(fā)者們只會給UserAgent帶有Mozilla的瀏覽器發(fā)送帶框架的頁面。

但是你以為這點小事就能難倒我大微軟,天真!

微軟眼咕嚕一轉(zhuǎn),呵呵一笑:切,既然如此,那我易容成Mozilla不就行了?

于是,微軟給IE披上了一層怪獸皮,把自己的UserAgent改成了:Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)。

你看,我也是Mozilla,這樣你就可以把帶框架的頁面發(fā)給我了~

嘗到耍流氓甜頭的微軟一發(fā)不可收拾,利用自己操作系統(tǒng)的優(yōu)勢,將易容后的IE強制和操作系統(tǒng)綁定:你就用我的系統(tǒng)免費贈送的IE瀏覽器,還要啥自行車?!

憑借不輸Mozilla的性能和流氓的手段,IE最終戰(zhàn)勝了Mozilla,但是從此IE也永久帶上了Mozilla的標記。

五、浴火重生的狐貍:FireFox

但是,怪獸不愧是怪獸,強大的怪獸怎么能被流氓輕易擊敗呢?!

曾經(jīng)Mozilla的大神們卷土重來,他們使用瀏覽器排版引擎Gecko(壁虎)發(fā)明了另一款優(yōu)秀的瀏覽器,它在插件拓展和開發(fā)調(diào)試領(lǐng)域做出的貢獻,絕對可以載入互聯(lián)網(wǎng)歷史。

這么跨時代的創(chuàng)造,叫什么好呢?眾所周知,Mozilla的大神們總是對怪獸情有獨鐘,既然我們從失敗中浴火重生,那么其名曰:Phoenix(鳳凰)??!

但是Phoenix(鳳凰)還沒起飛就遭遇了折翼,旁邊一家叫鳳凰科技的公司強烈抗議:魂淡,是我先叫Phoenix(鳳凰)的,你們侵權(quán)了!

大神們很無奈,沒辦法,那我們叫Firebird(火鳥),總行了吧?!雖然聽起來挺中二的,但是也不行。因為有一款數(shù)據(jù)庫也叫這個名字。

大神們抓狂,起個名字怎么這么難?!淚流滿面的大神們最終給這款劃時代的瀏覽器起名叫FireFox(火狐)。

瀏覽器UserAgent的趣味史

FireFox(火狐)至今還是最常用的瀏覽器之一,可見其優(yōu)秀程度竟恐怖如斯!

大神們?yōu)榱烁嬖V開發(fā)者們,我是如此的優(yōu)秀,你們可以給我更好更炫酷的頁面了!

于是,F(xiàn)ireFox(火狐)標志自己的UserAgent為:Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0。

雖然這個UserAgent看起來很長,但是信息還是比較清晰,表明了自己的身份是Moziila5.0和Firefox/1.0,支持的系統(tǒng)和使用的Gecko的引擎。

和之前一樣,開發(fā)者們只會給作為開創(chuàng)者的FireFox(火狐)發(fā)送更優(yōu)質(zhì)的html頁面。FireFox(火狐)憑借優(yōu)秀的性能,發(fā)展非常迅速,雖然沒有打敗IE,但是也能和IE分庭抗禮。

六、萌賤萌賤的Konqueror

而在IE和FireFox(火狐)互掐的時候,其實市場上還存在另外一個著名的操作系統(tǒng)Linux。Linux看著Window的IE瀏覽器非常眼紅,于是尋思著也開發(fā)一款基于Linux的瀏覽器。

大神就是大神,開發(fā)瀏覽器就是小菜一碟!成功以后,Linux大神們一樣不能免俗,要為自己的孩子起一個響亮且霸氣的名字。

前有Moziila(哥斯拉),后有IE(探索者),那我們…..嗯,就叫:Konqueror(Conqueror的變體,低調(diào)低調(diào))征服者吧?。?66666)。

但是,Konqueror使用的是KHTML排版引擎,失去了先發(fā)優(yōu)勢。所以,Konqueror也遇到了和IE類似的問題:開發(fā)者們只認UserAgent里面帶有Gecko的瀏覽器,不帶就休想獲得帶有良好排版的頁面!

小Konqueror非常無奈,萬分糾結(jié)之下,做出了一個操作,把自己的UserAgent寫成:Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko)。

就這樣,偉大的Konqueror為了獲取更優(yōu)質(zhì)的頁面,也不得不耍了點小心機。從此,(KHTML,like Gecko) 與IE的Mozilla一樣成了一道抹不去的印記。

七、魑魅魍魎,群魔亂舞!

發(fā)展到這,你以為就結(jié)束了嗎?天真!在互聯(lián)網(wǎng)這個狂熱的世界,只有你想不到,沒有你做不到!

腦洞大開的Opera覺得IE和Konqueror的做法真的太棒了,甚得吾心!那咱也不能示弱?。杭热挥羞@么多可以選擇的UserAgent(馬甲),那我們是不是可以想變成誰就變成誰??。∣pera的大神們可能是百變小櫻的忠實粉絲)。

Opera直接在菜單提供了三個選擇項:

  1. Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.51;
  2. Mozilla/5.0 (Windows NT 6.0; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0;
  3. Opera 9.51Opera/9.51 (Windows NT 5.1; U; en)。

第一個是IE,第二個是火狐,第三個才是自己,芭芭拉小魔仙,你想變誰就變誰!

與此同時,在科技的貴圈里,怎么能少得了我大Apple?!蘋果公司依靠“自己的”WebKit,開發(fā)出Safari,并將UserAgent命名為:Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5。

誒?!仔細一看,這不對啊,AppleWebKit不是蘋果公司自己的嗎,為啥還會帶有(KHTML, like Gecko)?!

蘋果邪魅一笑:呵呵,大驚小怪,因為我們的內(nèi)核Webkit排版引擎的核心叫WebCore,而WebCore是KHTML衍生而來的。也就是說,WebCore是KHTML的兒子,子承父業(yè),蘋果公司只能在UserAgent加上 (KHTML, like Gecko) 。

在越發(fā)混亂的瀏覽器貴圈里,谷歌也不甘寂寞,跳出來大聲宣布:我大谷歌也開發(fā)了一款瀏覽器,它叫Chrome!

而Chrome設(shè)定的UserAgent為: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。

Safari一看:臥槽,從未見過如此厚顏無恥之徒!你怎么也在后面寫有Safari?

Chrome呵呵一笑,你懂的——原來Chrome瀏覽器的內(nèi)核也是Webkit。

所以,最后讓我們來順一下:

  1. Chrome希望獲得Safari的頁面,所以偽裝成了Safari;
  2. 而Safari的內(nèi)核是WebKit引擎,而WebKit又是KHTML的兒子;
  3. KHTML又不得不易容成Gecko;
  4. 而由于IE的騷操作,瀏覽器又都宣稱自己是Mozilla……

至此,現(xiàn)在的瀏覽器,你隨便打開一個,查看他們的UserAgent,都會發(fā)現(xiàn)或多或少帶有這些印記。

大家現(xiàn)在應(yīng)該明白瀏覽器中那長長的UserAgent是怎么來的了吧。

 

作者:Jarvan;公眾號:產(chǎn)品叨比叨

本文由 @Jarvan 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 歐摩西羅伊

    來自四川 回復(fù)