所有人都應該瞭解的瀏覽器發展史 內核 userAgent 一篇文章全瞭解

大家好呀,不知道你對瀏覽器有多少了解呢。如果你是一個前端程序員,真的清楚user-agent字段的含義嗎?看完這篇文章相信你對瀏覽器會有更多的瞭解。

起源

說到瀏覽器不得不提到的一個人,就是英國計算機科學家Tim berners-Lee,他既是萬維網之父,也是開發了第一款網頁瀏覽器的男人。1990年老Lee在他的NeXT電腦上,使用object-c開發編寫出了第一個網頁瀏覽器。大佬比較任性,他給這個瀏覽器取名為WorldWideWeb,是的,這個瀏覽器和萬維網同名,後來為了避免與萬維網混淆,改名成了Nexus。

所有人都應該瞭解的瀏覽器發展史 內核 userAgent 一篇文章全瞭解

Nexus只能在NeXT系統上運行,而NeXT軟件公司的創始人大家就比較熟悉了,就是1985年被蘋果公司辭退的Steve Jobs喬布斯。後來,NeXT也被蘋果收購。後來老Lee團隊又使用C語言編寫了世界上第二個網頁瀏覽器,Line Mode Browser。LMB瀏覽器是第一個被驗證可以移植到不同的操作系統的瀏覽器,在1991年發行。

現在瀏覽器確實被髮明出來了,但是上面顯示的都是文本信息。有句話說的,好無圖無真相,於是,伊利諾大學的NCSA組織在1993年發明了第一款可顯示圖片的瀏覽器,命名為Mosaic(馬賽克)。畢竟可以顯示圖片,就可以顯示馬賽克嘛。雖然當時的馬賽克瀏覽器沒有CSS,沒有JavaScript,只能顯示一些簡單的HTML標籤 但還是成為了在當時世界上最流行的瀏覽器。

好了,現在世界上有了兩個瀏覽器,Mosaic可以顯示圖片,Nexus不能。那麼怎麼區分用戶使用的是哪一種瀏覽器呢?這時候UserAgent就誕生了。馬賽克瀏覽器會在發送請求時的UserAgent字段帶上Mosaic的標記,服務端就可以根據這個字段向不同的瀏覽器返回不同的信息了,這個時候的userAgent還是很簡潔明瞭的。

Mosaic:Mosaic/0.9 (Windows 3.1)

第一次瀏覽器大戰

後來Mosaic團隊的領導者,馬克·安德森辭職併成立了自己的公司 Netscape(網景公司)。網景公司很快發佈了一款新的瀏覽器Mozilla。Mozilla,是Godzilla哥斯拉的諧音,也有“Mosaic Killa”的意思,就是想說,自己是“馬賽克的終結者”,有一股濃濃的火藥味,但是Mosaic在當時掌權,Mozilla迫於權威還是改名成Netscape Navigator(網景航海家)。而網景瀏覽器也是有囂張的資本的,因為他最先支持了html框架顯示,還有簡單的table佈局,內外邊距之類,憑藉這點很快就將Mosaic甩到身後,成為了世界上最流行的瀏覽器,市場佔有率一度達到90%。

還記得剛才提到的useragent嗎,網景瀏覽器還是偷偷把UserAgent設置成Mozilla了,就是要Mozilla(莫咋啦)。這樣服務端可以知道帶有Mozilla字段的瀏覽器支持html標準框架。

Netscape Navigator:Mozilla/2.0 [Language] (Windows 98; Encryption)

但是好景不長,微軟公司也看上了瀏覽器這塊蛋糕。在1995年推出了IE1.0。同年11月發佈了IE2.0。但是IE的這兩個版本都幾乎沒有人使用,因為做的太爛了。不過在IE3.0的版本時,戰爭狀況發生了改變,除了性能的提升,另一個原因更為重要,就是從IE3.0開始,微軟將IE瀏覽器強行內置在了Windows系統中。然後IE瀏覽器的市場佔有率從一開始的8%上升到了80%多。

1998年,網景公司開放網景瀏覽器的源碼迎接挑戰,但是還是沒能挽回戰局,最後被美國在線(AOL)以42億美元收購了。至此,第一次瀏覽器之戰以IE的獲勝而告終。此後,IE開始主導瀏覽器市場,市場佔有率在2002達到了最高的95%。因為IE瀏覽器也是支持html標準框架的,所以最開始為了拿到含有標準框架的頁面,也把UserAgent設置成了Mozilla。

IE:Mozilla/4.0 (compatible; MSIE 4.0; Windows 98)

所有人都應該瞭解的瀏覽器發展史 內核 userAgent 一篇文章全瞭解

百花齊放

要知道,網景公司曾經可是擁有一批開發了網景瀏覽器、JavaScript還有Gecko排版引擎的大神們。大神們怎會輕言放棄,後來他們圍繞著Gecko排版引擎成立了Mozilla自由軟件社群。並開發出了一款新的瀏覽器。最開始這款瀏覽器命名為Phoenix(鳳凰),後來又改名成了Firebird,但是有其他公司使用了這個名字,所以這款瀏覽器最終改名成了Firefox。2004年11發佈了第一個正式版本Firefox1.0,火狐瀏覽器當然還是Mozilla黨,並在useragent字段中加入了Gecko字樣。

Firefox:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11

同期,在2003年,蘋果公司搭配自家的Mac OS X Panther推出了自家的Safari瀏覽器,並且在MAC、iPad、iPhone等等設備上迅速擴張版圖。2005年,蘋果開源了Safari的內核,就是大名鼎鼎的Webkit,意義之重大不言而喻。WebKit起初作為KHTML渲染引擎的一個分支,使用在Linux系統的瀏覽器上,後來脫離出來,建立了自己的開源項目,專注發展開源引擎。Safari在自己的useragent字段中加上了KHTML like Gecko字樣。

Safari:Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/124 (KHTML, like Gecko) Safari/125.1

更早一點時間還有另一款瀏覽器問世,Opera,歐朋瀏覽器。雖然它在市場佔有率上沒有引起波瀾,但是它提供了一個功能,易容術。用戶可以選擇可以把UserAgent易容成IE、火狐或者易容成它自己。後來各個瀏覽器也都從他這裡拜師學藝。

2008年,Google攜Chrome瀏覽器參戰。Chrome相比於他的競爭者,界面更加簡化,看起來更像一個桌面應用。Google將標籤放到了瀏覽器的最上面以示強調,這些標籤之間是獨立的,一個標籤崩潰了,也不會影響其他的頁面。Chrome瀏覽器使用的內核是webkit的一個分支,被命名為chromium。後來谷歌還研發了自己的Javascript引擎V8,極大地提高了JS的運算速度。Chrome也很有趣,他在自己的useragent中加入了Chrome和Safari兩個名字。

Chrome:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13

自此,IE瀏覽器依靠Windows系統依然佔據重要地位,Firefox和Chrome二者也擁有大量粉絲,逐步侵佔IE的市場份額。

2009年12月,谷歌推出了Chrome擴展庫。用戶可以在Chrome中安裝的具有額外功能的第三方插件,擴展庫收到了用戶的熱烈歡迎,僅一年,就有了8,500多個擴展和1,500多個瀏覽器主題。Chrome瀏覽器用戶激增,從年初的4,000萬增長到2010年底的1.2億。最初的Chrome標誌是金屬色和三維立體的風格,後來改成了更簡單、更整潔的扁平化設計。

所有人都應該瞭解的瀏覽器發展史 內核 userAgent 一篇文章全瞭解

2012年夏天,Google完成了曾經在許多人看來根本不可能完成的任務。Chrome佔有31%的市場份額,最終取代了Microsoft的IE瀏覽器,成為世界上最受歡迎的瀏覽器。

所有人都應該瞭解的瀏覽器發展史 內核 userAgent 一篇文章全瞭解

因為蘋果推出的Webkit2與Chromium的設計理念衝突,2013年Google宣佈了全新的內核項目——Blink。Blink早期完全複製了Webkit,之後刪除了與自身無關的代碼,開始大刀闊斧地對內核進行改革。之後由Google和Opera共同研發。

在Chrome發展壯大過程中,微軟開始頻繁的更新IE。2011年IE9發佈,2012年IE10發佈,2013年IE11發佈。最後IE的代碼實在適應不了新要求的web技術。所以在2015年,隨著Win10的發佈,微軟宣佈了一款全新的瀏覽器Edge。雖然後來微軟對Edge進行了數十次改進,讓它更快、更穩定。但人們仍然沒有選擇Edge的理由,因為Edge可以做的一切事情,谷歌和火狐都可以做得更好。在接下來的幾年裡,Google將積極利用其市場地位,擴大Chrome在全球的覆蓋範圍,從Microsoft手中奪取更大的市場份額,並開發新的工具,以適應人們不斷變化的網絡生活方式。

所有人都應該瞭解的瀏覽器發展史 內核 userAgent 一篇文章全瞭解

尾聲

現在我們知道了,蘋果是在KHTML的基礎上開發的webkit,谷歌又從webkit的基礎上開發了blink。Opera開發了一段時間就去和谷歌開發blink去了,可見內核開發何其困難。雖然國內瀏覽器百花齊放,其實都是在webkit和blink的基礎上進行的二次開發。

所有人都應該瞭解的瀏覽器發展史 內核 userAgent 一篇文章全瞭解

僅僅十年,Chrome憑藉一己之力引領了瀏覽器的發展方向,成為了全球最受歡迎的瀏覽器。但微軟的經驗可以證明,如果谷歌不能充分利用其所建立的優勢,這種大好局面可能會很快喪失。

好啦,這篇文章就寫到這裡了,如果你覺得不錯的話,點個關注吧~

B站搜索BUPPT有視頻講解哦,下期見~

參考

https://humanwhocodes.com/blog/2010/01/12/history-of-the-user-agent-string/ http://litten.me/2014/09/26/history-of-browser-useragent/ https://wwww.huxiu.com/article/312327.html https://www.jianshu.com/p/db1b230e3415 https://www.google.com/googlebooks/chrome/med_00.html https://www.infoq.cn/article/2008/10/google-chrome-perspectives-zh


分享到:


相關文章: