你是否好奇標(biāo)識(shí)瀏覽器身份的User-Agent,為什么每個(gè)瀏覽器都有Mozilla字樣邑遏?

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36

Mozilla/5.0 (Linux; U; Android 4.1.2; zh-tw; GT-I9300 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0)

故事還得從頭說起佣赖,最初的主角叫NCSA Mosaic,簡稱Mosaic(馬賽克)记盒,是1992年末位于伊利諾伊大學(xué)厄巴納-香檳分校的國家超級計(jì)算機(jī)應(yīng)用中心(National Center for Supercomputing Applications憎蛤,簡稱NCSA)開發(fā),并于1993年發(fā)布的一款瀏覽器纪吮。它自稱“NCSA_Mosaic/2.0(Windows 3.1)”俩檬,Mosaic可以同時(shí)展示文字和圖片,從此瀏覽器變得有趣多了碾盟。

然而很快就出現(xiàn)了另一個(gè)瀏覽器棚辽,這就是著名的Mozilla,中文名稱摩斯拉冰肴。一說 Mozilla = Mosaic + Killer屈藐,意為Mosaic殺手,也有說法是 Mozilla = Mosaic & Godzilla熙尉,意為馬賽克和哥斯拉联逻,而Mozilla最初的吉祥物是只綠色大蜥蜴,后來更改為紅色暴龍骡尽,跟哥斯拉長得一樣遣妥。

但Mosaic對此非常不高興擅编,于是后來Mozilla更名為Netscape攀细,也就是網(wǎng)景。Netscape自稱“Mozilla/1.0(Win3.1)”爱态,事情開始變得更加有趣谭贪。網(wǎng)景支持框架(frame),由于大家的喜歡框架變得流行起來锦担,但是Mosaic不支持框架俭识,于是網(wǎng)站管理員探測user agent,對Mozilla瀏覽器發(fā)送含有框架的頁面洞渔,對非Mozilla瀏覽器發(fā)送沒有框架的頁面套媚。

后來網(wǎng)景拿微軟尋開心,稱微軟的Windows是“沒有調(diào)試過的硬件驅(qū)動(dòng)程序”磁椒。微軟很生氣堤瘤,后果很嚴(yán)重。此后微軟開發(fā)了自己的瀏覽器浆熔,這就是Internet Explorer本辐,并希望它可以成為Netscape Killer。IE同樣支持框架,但它不是Mozilla慎皱,所以它總是收不到含有框架的頁面老虫。微軟很郁悶很快就沉不住氣了,它不想等到所有的網(wǎng)站管理員都了解IE并且給IE發(fā)送含有框架的頁面茫多,它選擇宣布IE是兼容Mozilla祈匙,并且模仿Netscape稱IE為“Mozilla/1.22(compatible; MSIE 2.0; Windows 95)”,于是IE可以收到含有框架的頁面了天揖,所有微軟的人都嗨皮了菊卷,但是網(wǎng)站管理員開始暈了。

因?yàn)槲④泴E和Windows捆綁銷售宝剖,并且把IE做得比Netscape更好洁闰,于是第一次瀏覽器血腥大戰(zhàn)爆發(fā)了,結(jié)果是Netscape以失敗退出歷史舞臺(tái)万细,微軟更加嗨皮扑眉。但沒想到Netscape居然以Mozilla的名義重生了,并且開發(fā)了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”谴餐,每一個(gè)都將自己裝作Mozilla姻政,而它們?nèi)际褂肎ecko。

Gecko很出色岂嗓,而IE完全跟不上它汁展,因此user agent探測規(guī)則變了,使用Gecko的瀏覽器被發(fā)送了更好的代碼厌殉,而其他瀏覽器則沒有這種待遇食绿。Linux的追隨者對此很難過,因?yàn)樗麄兙帉懥薑onqueror公罕,它的引擎是KHTML器紧,他們認(rèn)為KHTML和Gecko一樣出色,但卻因?yàn)椴皇荊ecko而得不到好的頁面熏兄,于是Konqueror為得到更好的頁面開始將自己偽裝成“l(fā)ike Gecko”品洛,并自稱為“Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko)”树姨。自此user agent變得更加混亂。

這時(shí)更有Opera跳出來說“毫無疑問桥状,我們應(yīng)該讓用戶來決定他們想讓我們偽裝成哪個(gè)瀏覽器帽揪。”于是Opera干脆創(chuàng)建了菜單項(xiàng)讓用戶自主選擇讓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)”。

后來蘋果開發(fā)了Safari瀏覽器士飒,并使用KHTML作為渲染引擎查邢,但蘋果加入了許多新的特性,于是蘋果從KHTML另辟分支稱之為WebKit酵幕,但它又不想拋棄那些為KHTML編寫的頁面扰藕,于是Safari自稱為“Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5”,這進(jìn)一步加劇了user agent的混亂局面芳撒。

因?yàn)槲④浭旨蓱凢irefox邓深,于是IE重裝上陣,這次它自稱為“Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) ”笔刹,并且渲染效果同樣出色芥备,但是需要網(wǎng)站管理員的指令它這么做才行。

再后來舌菜,谷歌開發(fā)了Chrome瀏覽器萌壳,Chrome使用Webkit作為渲染引擎,和Safari之前一樣日月,它想要那些為Safari編寫的頁面袱瓮,于是它偽裝成了Safari。于是Chrome使用WebKit山孔,并將自己偽裝成Safari懂讯,WebKit偽裝成KHTML荷憋,KHTML偽裝成Gecko台颠,最后所有的瀏覽器都偽裝成了Mozilla,這就是為什么所有的瀏覽器User-Agent里都有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”串前。

因?yàn)橐陨线@段歷史,現(xiàn)在的User-Agent字符串變得一團(tuán)糟实蔽,幾乎根本無法彰顯它最初的意義荡碾。追根溯源,微軟可以說是這一切的始作俑者局装,但后來每一個(gè)人都在試圖假扮別人坛吁,最終把User-Agent搞得混亂不堪劳殖。

一句話結(jié)論:因?yàn)榫W(wǎng)站開發(fā)者可能會(huì)因?yàn)槟闶悄碁g覽器(這里是 Mozilla),所以輸出一些特殊功能的程序代碼(這里指好的特殊功能)拨脉,所以當(dāng)其它瀏覽器也支持這種好功能時(shí)哆姻,就試圖去模仿 Mozilla 瀏覽器讓網(wǎng)站輸出跟 Mozilla 一樣的內(nèi)容,而不是輸出被閹割功能的程序代碼玫膀。大家都為了讓網(wǎng)站輸出最好的內(nèi)容矛缨,都試圖假裝自己是 Mozilla 一個(gè)已經(jīng)不存在的瀏覽器……

附各大瀏覽器誕生年表:

1993年1月23日:Mosaic
1994年12月:Netscape
1994年:Opera
1995年8月16日:Internet Explorer
1996年10月14日:Kongqueror
2003年1月7日:Safari
2008年9月2日:Chrome

注:本文轉(zhuǎn)自簡明現(xiàn)代魔法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帖旨,一起剝皮案震驚了整個(gè)濱河市箕昭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌解阅,老刑警劉巖落竹,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異货抄,居然都是意外死亡筋量,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門碉熄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來桨武,“玉大人,你說我怎么就攤上這事锈津⊙剿幔” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵琼梆,是天一觀的道長性誉。 經(jīng)常有香客問我,道長茎杂,這世上最難降的妖魔是什么错览? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮煌往,結(jié)果婚禮上倾哺,老公的妹妹穿的比我還像新娘。我一直安慰自己刽脖,他們只是感情好羞海,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著曲管,像睡著了一般却邓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上院水,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天腊徙,我揣著相機(jī)與錄音简十,去河邊找鬼。 笑死撬腾,一個(gè)胖子當(dāng)著我的面吹牛勺远,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播时鸵,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼胶逢,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了饰潜?” 一聲冷哼從身側(cè)響起初坠,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎彭雾,沒想到半個(gè)月后碟刺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡薯酝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年半沽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吴菠。...
    茶點(diǎn)故事閱讀 40,852評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡者填,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出做葵,到底是詐尸還是另有隱情占哟,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布酿矢,位于F島的核電站榨乎,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏瘫筐。R本人自食惡果不足惜蜜暑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望策肝。 院中可真熱鬧肛捍,春花似錦、人聲如沸驳糯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽酝枢。三九已至,卻和暖如春悍手,著一層夾襖步出監(jiān)牢的瞬間帘睦,已是汗流浹背袍患。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留竣付,地道東北人诡延。 一個(gè)月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像古胆,于是被迫代替她去往敵國和親肆良。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 一、基礎(chǔ)知識(shí)篇:Http Header之User-AgentUser Agent中文名為用戶代理棺牧,是Http協(xié)議中...
    iPhone閱讀 15,765評論 0 13
  • User Agent中文名為用戶代理巫糙,簡稱 UA,它是一個(gè)特殊字符串頭颊乘,使得服務(wù)器能夠識(shí)別客戶使用的操作系統(tǒng)及版本...
    劍老濕閱讀 2,301評論 0 9
  • 瀏覽器發(fā)展史 現(xiàn)在瀏覽器已經(jīng)成為網(wǎng)上生活的重要家園和工具参淹。而從1991年,Web之父Tim Berners-Lee...
    波段頂?shù)?/span>閱讀 16,871評論 6 86
  • 一乏悄、基礎(chǔ)知識(shí)篇:Http Header之User-AgentUser Agent中文名為用戶代理浙值,是Http協(xié)議中...
    大牧莫邪閱讀 63,592評論 3 21
  • 不知多少人會(huì)與有我有同感:相較于地鐵,若是路面交通好檩小,車上有位置亥鸠,更愿意選擇公交而非地鐵。 原因是识啦,坐在公交車上的...
    IkoHuang閱讀 383評論 0 1