增哥解讀:這是一篇神奇的文章,你可以了解瀏覽器內核,同時可以感受Mozilla的倔強,IE的恐懼,Opera無可奈何下的不甘心,感受到了Safari在他的家族培養下一定會更加優秀以及Chrome這位技術先鋒的美好前景。


當我在查閱每個瀏覽器的發展過程時,我感受到了Mozilla的倔強,IE的恐懼,Opera無可奈何下的不甘心,感受到了Safari在他的家族培養下一定會更加優秀以及Chrome這位技術先鋒的美好前景。balabala………了一大堆,沒辦法,因為我是妹子,所以就愛關心“鄰里之間的雜事”~Piu——切入正題。
瀏覽器的主要組件有以下幾部分:
用戶界面
除了用來顯示瀏覽器主窗口之外的瀏覽器的其他部分,例如書簽目錄,地址欄,前進后退……。
瀏覽器引擎
這里說,瀏覽器引擎是查詢及操作渲染引擎的接口。我在網上搜的時候也大都是默認為渲染引擎。
渲染引擎
用來顯示請求的內容,如果請求內容為html,那么負責解析html、及css并將解釋后的結果顯示出來。還可以解析xml文件。
js引擎
用來解釋執行js代碼。
網絡
用來完成網絡調用,如http請求。
Native UI
用來繪制類似組合選擇框及對話框等基本組件,具有不特定于某個平臺的通用接口,底層使用操作系統的用戶接口。
數據存儲
屬于持久層,瀏覽器需要在硬盤中保存類似cookie的各種數據。
平常大家討論最熱鬧的就是瀏覽器內核,因為它關乎到我們前端工程師們所設計的界面是否如我們心中的模樣展示在各個瀏覽器中。
雖然現在我們知道的瀏覽器有很多,除了上篇文章介紹的5大主瀏覽器,還有許多國產瀏覽器,例如360,遨游,世界之窗,UC,搜搜……,雖然瀏覽器廠家很多,但是這些瀏覽器會各自選擇適合自己的開源內核。
我知道的瀏覽器內核:
Trident
是Windows搭載的網頁瀏覽器即IE的內核。1997年在IE4中使用。
1993年,NCSA將Mosaic的商業運營權轉售給了Spyglass公司。
最早的IE1(1994年)版本號為4.40.308,因為當時微軟還沒有買下Spyglass Mosaic的源碼,到了IE2和IE3,微軟同時注明了版本2(4.40.516)和版本3(4.70.1158),表明IE即將成為微軟專屬軟件。直到IE4成為微軟專屬軟件。它采用的排版引擎(俗稱內核)為Trident。
IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0)
實際上是一款開放的內核,其接口內核設計的相當成熟,因此才有許多采用IE內核而非IE的瀏覽器涌現。此外,為了方便也有很多人直接簡稱其為IE內核。
獵豹安全瀏覽器(1.0-4.2版本為Trident+Webkit,4.3版本為Trident+Blink)
360安全瀏覽器(1.0-5.0為Trident,6.0為Trident+Webkit,7.0為Trident+Blink)
360極速瀏覽器(7.5之前為Trident+Webkit,7.5為Trident+Blink)
傲游瀏覽器(傲游1.x、2.x為IE內核,3.x為IE與Webkit雙核)
百度瀏覽器(早期版本)
世界之窗瀏覽器[2] (最初為IE內核,2013年采用Chrome+IE內核)
2345瀏覽器、騰訊TT、淘寶瀏覽器
搜狗高速瀏覽器(1.x為Trident,2.0及以后版本為Trident+Webkit)
阿云瀏覽器(早期版本)、瑞星安全瀏覽器
閃游瀏覽器、海豚瀏覽器(iPhone/iPad/Android)
UC瀏覽器(Blink內核+Trident內核)
其中一個內核是Trident,然后再增加一個其他內核。國內的廠商一般把其他內核叫做“高速瀏覽模式”,而Trident則是“兼容瀏覽模式”
Gecko
是Netscape6開始采用的內核,后來的Mozilla FireFox也采用了該內核,Gecko的特點是代碼完全公開,是個開源內核,因此受到許多人的青睞。
事實上,Gecko引擎的由來跟IE不無關系
前面說過IE沒有使用W3C的標準,這導致了微軟內部一些開發人員的不滿;網景解散后,他們與當時已經停止更新了的Netscape的一些員工一起創辦了Mozilla。
以當時的Mosaic內核為基礎重新編寫內核,于是開發出了Gecko。
補充:JavaScript引擎是SpiderMonkey。
結果,網景6.0(trident 1.0)在2000年11月才被正式發布。
這二者均是在Mosaic內核的基礎上重新編寫內核。
KHTML及KJS
khtml為排版引擎即渲染引擎,kjs為js引擎。均是由KDE研發。是自由軟件,符合GPL(由他為基礎開發的軟件也為開源軟件)。
Webkit
包括webcore排版引擎與JavaScriptCore解析引擎,均是蘋果從KDE的KHTML及KJS引擎衍生而來。是蘋果公司自己的內核,也是Safari瀏覽器使用的內核,但是符合GPL條款,所以webkit為開源的,但是Safari瀏覽器為部分開源,自己公司的某些接口未對外開源。在Chrome 28之前,google使用webkit中webcore與自己的javascript V8引擎。那時也統稱為webkit引擎。
Blink
由Google和Opera Software開發的瀏覽器排版引擎。至于js引擎,想必Chrome依舊使用自己的V8引擎。
在2013年4月,Google計劃將這個渲染引擎作為Chromium計劃的一部分。這一渲染引擎是開源引擎WebKit中WebCore組件的一個分支。并且在Chrome(28及往后版本)、Opera(15及往后版本)中使用。此舉,谷歌稱稱將與蘋果的開源瀏覽器核心Webkit分道揚鑣。
Presto
是Opera12.10至Opera7中采用的內核,現已停止開發并廢棄,由于這是商業引擎(非開源),所以在發展上有了限制。這篇里面,我有寫到,在Opera12.10版本以后使用Blink作為其內核。
Mozilla與三星也達成合作協議開發“下一代”瀏覽器渲染引擎Servo。
未來會是怎樣的內核布局,又會有多少優勝劣汰。
我查了這么多資料后,覺得技術開源,不斷創新,不要因為一點成就,一時的市場份額,而得意忘形,停止步伐。
人們對產品的體驗沒有最好,只有更好。
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。