爲什麼瀏覽器User-agent(瀏覽器類型)總是有Mozilla字樣?

你是否好奇標識瀏覽器身份的User-Agent,爲什麼每個瀏覽器都有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年末位於伊利諾伊大學厄巴納-香檳分校的國家超級計算機應用中心(National Center for Supercomputing Applications,簡稱NCSA)開發,並於1993年發佈的一款瀏覽器。
它自稱“NCSA_Mosaic/2.0(Windows 3.1)”,Mosaic可以同時展示文字和圖片,從此瀏覽器變得有趣多了。

然而很快就出現了另一個瀏覽器,這就是著名的Mozilla,中文名稱摩斯拉。
一說 Mozilla = Mosaic + Killer,意爲Mosaic殺手,也有說法是 Mozilla = Mosaic & Godzilla,意爲馬賽克和哥斯拉。
而Mozilla最初的吉祥物是隻綠色大蜥蜴,後來更改爲紅色暴龍,跟哥斯拉長得一樣。

但Mosaic對此非常不高興,於是後來Mozilla更名爲Netscape,也就是網景。
Netscape自稱“Mozilla/1.0(Win3.1)”,事情開始變得更加有趣。
網景支持框架(frame),由於大家的喜歡框架變得流行起來,但是Mosaic不支持框架。
於是網站管理員探測user agent,對Mozilla瀏覽器發送含有框架的頁面,對非Mozilla瀏覽器發送沒有框架的頁面。

後來網景拿微軟尋開心,稱微軟的Windows是“沒有調試過的硬件驅動程序”。
微軟很生氣,後果很嚴重。此後微軟開發了自己的瀏覽器,這就是Internet Explorer,並希望它可以成爲Netscape Killer。
IE同樣支持框架,但它不是Mozilla,所以它總是收不到含有框架的頁面。
微軟很鬱悶很快就沉不住氣了,它不想等到所有的網站管理員都瞭解IE並且給IE發送含有框架的頁面,它選擇宣佈IE是兼容Mozilla,
並且模仿Netscape稱IE爲“Mozilla/1.22(compatible; MSIE 2.0; Windows 95)”,於是IE可以收到含有框架的頁面了,所有微軟的人都嗨皮了,但是網站管理員開始暈了。

因爲微軟將IE和Windows捆綁銷售,並且把IE做得比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很出色,而IE完全跟不上它,因此user agent探測規則變了,使用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)”。
附各大瀏覽器誕生年表:

    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
    
    注:本文轉自簡明現代魔法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章