邵慧華
摘要:隨著HTML5技術的發(fā)展和應用,原生應用和web應用的使用體驗逐漸接近,而web應用在跨平臺,易升級等方面的優(yōu)勢卻是原生應用無法企及的。在可預期的未來,web應用將逐漸取代原生應用,瀏覽器將部分替代操作系統(tǒng)。
關鍵詞:瀏覽器技術;渲染引擎;blink內核
一、引言
瀏覽器是訪問互聯(lián)網的主要入口,是我們日常生活中必不可少的上網工具,歷來都是各大互聯(lián)網公司的必爭之地,微軟,谷歌,蘋果等都有自己研發(fā)的瀏覽器。本文介紹了瀏覽器的發(fā)展歷史和現狀,技術原理及其發(fā)展趨勢和展望。
二、瀏覽器的歷史和現狀
(一)瀏覽器的發(fā)展簡史
1、WorldWideWeb發(fā)布
1991年,世界上第一個瀏覽器WorldWideWeb由Web 之父Tim Berners-Lee 設計,后改名為Nexus。
2、Mosaic發(fā)布
1993年,伊利諾伊大學厄巴納-香檳分校的NCSA組織發(fā)布Mosaic。
3、Netscape Navigator發(fā)布
1994年,Marc Andreessen 帶領 Mosaic 的程序員成立了Netscape 公司,并發(fā)布了第一款商業(yè)瀏覽器 Netscape Navigator。
4、IE發(fā)布
1995年,微軟針對 Netscape 發(fā)布了他們自己的瀏覽器IE,第一場瀏覽器之戰(zhàn)爆發(fā)。
5、Opera發(fā)布
1996年,挪威Telenor公司,推出了 Opera,并在兩年后進軍移動市場,推出 Opera 的移動版。
6、Firefox發(fā)布
1998年,Netscape成立了Mozilla 基金會組織,并開源其瀏覽器代碼,并于2002年發(fā)布Firefox瀏覽器。
7、Safari發(fā)布
2003年,蘋果發(fā)布Safari瀏覽器,其內核為基于KHTML開發(fā)的webkit。
8、Chrome發(fā)布
2008年,谷歌發(fā)布Chrome瀏覽器,其內核為webkit;2013年,谷歌將其內核改變?yōu)榛趙ebkit研發(fā)的blink內核。
9、Microsoft Edge發(fā)布
2015年,微軟發(fā)布Microsoft Edge瀏覽器,使用內核為EdgeHTML,2020年,內核更改為谷歌的blink。
(二)主流瀏覽器介紹
主流瀏覽器是有一定市場份額且有自己獨立研發(fā)內核的瀏覽器,也叫原生瀏覽器,當前國內的瀏覽器一般都是基于國外的瀏覽器內核進行研發(fā)的產品。當前主流瀏覽器總大概有以下幾種:
1、IE瀏覽器
IE瀏覽器是微軟公司開發(fā)的,內核為Trident。1995年,微軟通過把IE瀏覽器捆綁到windows操作系統(tǒng)中提供給用戶免費使用的方式來推廣,很快,IE瀏覽器變占據了主流市場。后來,隨著反壟斷訴訟,以及IE瀏覽器的技術和體驗上的落后,微軟于2015年推出使用新內核EdgeHTML的Edge瀏覽器,2020年Edge瀏覽器正式將其內核切換為谷歌的blink。
2、Opera瀏覽器
Opera瀏覽器是挪威Opera Software ASA公司制作的支持多頁面標簽式瀏覽的網絡瀏覽器,是一款跨平臺瀏覽器,可以在Windows、Mac和Linux三個操作系統(tǒng)平臺上運行,其內核一開始為Presto,2013年以后開始使用谷歌研發(fā)的blink內核。2016年,Opera瀏覽器被昆侖萬維、奇虎360收購。
3、Firefox瀏覽器
Firefox瀏覽器是一個由Mozilla基金會開發(fā)的自由及開放源代碼的網頁瀏覽器,在2002年發(fā)布,使用Gecko內核。
4、Safari瀏覽器
Safari瀏覽器是蘋果公司于2003年開發(fā)的一款瀏覽器,其內核基于KHTML內核研發(fā)的Webkit內核,最新的內核使用Webkit2。
5、Chrome瀏覽器
Chrome瀏覽器是谷歌公司于2008年發(fā)布的一款瀏覽器,其內核最初為webkit,后來谷歌公司基于webkit上自研了blink內核,于是在2013年其內核更改為blink。
三、瀏覽器技術介紹
(一)瀏覽器的功能和構成
瀏覽器的主要功能是將用戶選擇的web資源呈現出來,它需要從服務器請求資源,并將其顯示在瀏覽器窗口中,資源的格式通常是HTML,也包括PDF、image及其他格式,用戶用URI(Uniform Resource Identifier統(tǒng)一資源標識符)來指定所請求資源的位置。HTML和CSS規(guī)范中規(guī)定了瀏覽器解釋HTML文檔的方式,由W3C組織對這些規(guī)范進行維護,W3C是負責制定web標準的組織。
用戶接口:包括地址欄、后退/前進按鈕、書簽目錄等,除了用來顯示所請求頁面的主窗口之外的其他部分
瀏覽器引擎API:用來查詢及操作渲染引擎的接口
渲染引擎:用來顯示請求的內容,負責解析html及css,并將解析后的結果顯示出來
網絡接口:用來完成網絡調用,例如http請求,具有平臺無關的接口,可以在不同平臺上工作
JS引擎:用來解釋執(zhí)行JS代碼
UI組件:用來繪制類似組合選擇框及對話框等基本組件,具有不特定于某個平臺的通用接口,底層使用操作系統(tǒng)的用戶接口。
數據存儲:屬于持久層,瀏覽器需要在硬盤中保存類似cookie的各種數據
(二)渲染引擎運行原理
渲染引擎的職責就是渲染,即在瀏覽器窗口中顯示所請求的內容。默認情況下,渲染引擎可以顯示html、xml文檔及圖片,它也可以借助插件(一種瀏覽器擴展)顯示其他類型數據,例如使用PDF閱讀器插件顯示PDF格式等
渲染引擎首先通過網絡獲得所請求文檔的內容,通常以8K分塊的方式完成。
渲染引擎開始解析html,并將標簽轉化為內容樹中的dom節(jié)點。接著,它解析外部CSS文件及style標簽中的樣式信息。這些樣式信息以及html中的可見性指令將被用來構建另一棵樹——render樹。
Render樹由一些包含有顏色和大小等屬性的矩形組成,它們將被按照正確的順序顯示到屏幕上。
Render樹構建好了之后,將會執(zhí)行布局過程,它將確定每個節(jié)點在屏幕上的確切坐標。再下一步就是繪制,即遍歷render樹,并使用UI后端層繪制每個節(jié)點。
這個過程是逐步完成的,為了更好的用戶體驗,渲染引擎將會盡可能早的將內容呈現到屏幕上,并不會等到所有的html都解析完成之后再去構建和布局render樹。它是解析完一部分內容就顯示一部分內容,同時,可能還在通過網絡下載其余內容。
四、瀏覽器技術的發(fā)展和展望
(一)Web應用將逐漸取代原生應用
隨著HTML5技術的發(fā)展和應用,原生應用和web應用的使用體驗逐漸接近,而web應用在跨平臺,易升級等方面的優(yōu)勢卻是原生應用無法企及的。因此在可預期的將來,web應用將逐漸取代原生應用,除了通用類基礎軟件和要求比較高的游戲外,其它的程序都逐步往瀏覽器上搬遷。目前這一進程已經開始,未來可能還將加速。
(二)瀏覽器將部分替代操作系統(tǒng)
原生應用逐漸被web應用取代,更少的軟件被安裝到操作系統(tǒng)中,也就意味著操作系統(tǒng)重要性的降低。HTML5提供的Web數據存儲和離線數據存儲功能,更多的接口能讓瀏覽器具有更強的處理本地數據的能力,這就使得瀏覽器可以部分代替操作系統(tǒng),瀏覽器某種程度上將成為通用的平臺,用戶無需離開瀏覽器就能完成絕大部分的任務。
(三)blink內核有望一統(tǒng)天下
瀏覽器內核最終有可能統(tǒng)一,最可能完成一統(tǒng)天下任務的是谷歌研發(fā)的blink內核。當前最主要的兩個瀏覽器內核為蘋果的webkit和谷歌的blink,除了在蘋果終端設備上的瀏覽器中使用webkit內核外,當前主要的瀏覽器基本上使用的都是blink瀏覽器。
參考文獻
[1]金成明,張捷,趙永彬,等. 異構操作系統(tǒng)瀏覽器多核支持技術及改造方法[J]. 電子技術應用,2016(z1):41-45.DOI:10.16157/j.issn.0258-7998.2016.S1.015.
[2]王灝漢. Web瀏覽器客戶端取證技術的探索與應用[J]. 網絡安全技術與應用,2020(10):168-172. DOI:10.3969/j.issn. 1009- 6833.2020.10.099.