廣泛認爲,91年正式發佈的WorldWideWeb是全球最先的一款瀏覽器,後來更名爲Nexus,特色是能夠兼容Unix和Microsoft DOS的,可是還不支持圖片的顯示,雖然功能有限,但在當時卻很是流行。windows
93年,美國伊利諾州的NCSA組織發明了一款能夠顯示圖片的瀏覽器,但是恰恰就命名爲馬賽克(Mosaic),這不當緊,讓「網絡管理員」抓狂了,怎麼分辨你的瀏覽器是否能顯示圖片呢,因此 UserAgent就誕生了,Mosaic將本身標誌爲NCSA_Mosaic/2.0(windows 3.1),這也是咱們使用瀏覽器發送請求的時候請求頭有一個字段爲UserAgent的最開始緣由。瀏覽器
94年,Mosaic開發的中心人物 馬克·安德森等成立了「MOSAIC Communication Corp」, 可是因爲NCSA擁有Mosaic的商標權,使得開發團隊不得不完全從新撰寫瀏覽器代碼,試圖打破Mosaic的的壟斷,開發了一款瀏覽器 Mozilla ,Mozilla 啥意思呢 Mozilla = Mosaic Godzilla Killa ,Godzilla,哥斯拉龐然怪獸,Killa是俚語中Killer的拼發,大概的意思就是馬賽克終結者。可是Mosaic很是不高興,該瀏覽器最大的特色是以共享軟件的方式販賣,同時又支持框架(frame),而Mosaic不支持框架,因此網景當時的市場佔有率約有90%,可謂是一個瀏覽器界發展史上的重要里程碑。爲了不和NCSA的商標擁有問題,將公式更名爲網景通信公司(Netscape Communications Corporation),同年,瀏覽器軟件也更名爲 Netscape Navigator,也就是咱們所知道的大名鼎鼎的網景瀏覽器。有趣的是,它大名雖然叫網景,可是偷偷的把UserAgent 設置成 Mozilla/1.0,因而網站管理員探測UserAgent對於Mozilla瀏覽器發送含有框架的頁面網絡
接下來,網景瀏覽器繼續迅速發展,伴隨着Java等技術標準的提出,一種基於Internet而首次和微軟的操做系統無關的新的軟件體系造成,以網景爲首的一批互聯網技術公司的崛起,迅速構成了一股隱隱的能夠與微軟平起平坐的新力量。讓微軟感到懼怕的是:若是網景在瀏覽器市場上取得壟斷性優點,它就徹底有可能和實力推出一套新的操做系統以替代微軟的Windows。因此比爾蓋茨和網景談判,但願能創建合做關係,這但是微軟僅有的一次「屈膝」。但是已經取得戰略先機的網景豈會買帳,談判破裂。框架
這下完全惹怒了微軟,95年,被逼急了的微軟在短短的一年時間,投入20億美圓,經過購買(包括Mosaic的受權)、兼併和開發等多種手段,迅速地推出了一個瀏覽器產品IE2.0。爲了完全摧毀網景,微軟決定,將這一產品實行免費開放。不要白不要的IE一會兒就把瀏覽器市場的遊戲規則給衝亂了。在此以前,網景瀏覽器的收費標準爲45美圓,而IE的功能與之相近卻分文不收,無疑讓包括網景在內的全部公司和消費者都目瞪口呆。這還不夠,半年後,微軟又使出另外一個殺手鐗,宣佈Windows95與IE捆綁銷售,這一招讓網景完全絕望了,眼看着微軟利用操做系統的壟斷(當時windows操做系統擁有的90%以上的份額)去創造另外一個新的壟斷,瀏覽器的市場迅速被微軟搶佔,有趣的是IE瀏覽器也支持框架,可是要等到全部網站管理員都瞭解到了IE,纔給IE也發送含有框架的頁面,顯然IE一刻也不想等了,它宣佈本身是兼容Mozilla的,還將本身的UserAgent改爲了 Mozilla/1.22(compatible; MSIE 2.0; Windows 95),因此IE瀏覽器就也能收到含有框架的頁面了ide
98年,網景在與IE瀏覽器競爭失利之後,爲了挽回市場,宣佈旗下全部軟件之後都是免費,並開放了網景通訊家(Netscape Communicator)4.0的源代碼,成立了非正式組織Mozilla。性能
微軟已經佔據了操做系統的壟斷市場了,眼看瀏覽器的市場也將被壟斷。爲了讓這不成爲事實,98年11月美國在線AOL 耗資42億美圓收購了網景,避免了這一切的發生。爲了防止瀏覽器再度被壟斷,美國在線在後面幾年相繼發佈了 Netscape 5 6 等幾個版本。但是這對微軟來講徹底都不是事,徹底動搖不了IE的地位。因而美國在線和微軟由於瀏覽器壟斷這事情一直沒能達成協議,打官司。網站
最後微軟因濫用壟斷能力而敗訟後,美國在線向微軟提出索償訴訟。在2003年5月,微軟和美國在線達成和解協議,願意支付網景7.5億美圓,並贊成向美國在線提供7年無限制的使用和散佈Internet Explorer的權利。這被認爲是「網景退出的信號」。spa
03年七月,美國在線解散網景公司,網景的標誌也從辦公大樓中去除,而且將Netscape的源碼送給開源社區,而且成立了Mozilla基金會,而這個基金會就是如今Firefox瀏覽器的管理與推動組織操作系統
由於微軟將IE和Windows捆綁銷售,而且把IE作得比Netscape更好,因而第一次瀏覽器血腥大戰爆發了,結果是Netscape以失敗退出歷史舞臺,微軟更加嗨皮。但沒想到Netscape竟然以Mozilla的名義重生了,而且開發了Gecko,此次它自稱爲「Mozilla/5.0(Windows; U; Windows NT 5.0; en-US; rv:1.1) Gecko/20020826」。.net
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徹底跟不上它,所以useragent探測規則變了,使用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)」。
後來蘋果開發了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」,這進一步加重了user agent的混亂局面。
由於微軟十分忌憚Firefox,因而IE重裝上陣,此次它自稱爲「Mozilla/4.0 (compatible; MSIE 8.0;Windows NT 6.0) 」,而且渲染效果一樣出色,可是須要網站管理員的指令它這麼作才行。
再後來,谷歌開發了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」。
由於以上這段歷史,如今的User-Agent字符串變得一團糟,幾乎根本沒法彰顯它最初的意義。追根溯源,微軟能夠說是這一切的始做俑者,但後來每個人都在試圖假扮別人,最終把User-Agent搞得混亂不堪。
一句話結論:由於網站開發者可能會由於你是某瀏覽器(這裏是
Mozilla),因此輸出一些特殊功能的程序代碼(這裏指好的特殊功能),因此當其它瀏覽器也支持這種好功能時,就試圖去模仿 Mozilla
瀏覽器讓網站輸出跟 Mozilla 同樣的內容,而不是輸出被閹割功能的程序代碼。你們都爲了讓網站輸出最好的內容,都試圖僞裝本身是 Mozilla 一個已經不存在的瀏覽器……
附各大瀏覽器誕生年表:
- 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
參考 :http://blog.csdn.net/puppylpg/article/details/47319401
轉自:https://blog.csdn.net/qzcsu/article/details/73650767