瀏覽器的工作原理是什麼?

瀏覽器的工作原理

一、知識點

① 瀏覽器進行DNS查找:

網站提供的域名 查找 IP地址,根據IP找服務器

② 瀏覽器跟服務器建立連接: TCP握手機制

現在大部分的服務器連接都基於https協議的,那麼會多一步TLS握手,建立加密的隧道,保證數據不被監聽和篡改。

③ 瀏覽器發起請求(http/https)獲取服務器響應

受TCP連接的限制,最先獲取的是前14kb的數據(對網站來說就是html),再慢慢增加傳輸速度。

④ 瀏覽器渲染網頁: (五步) 關鍵渲染路徑

 

(一) 解析html, 構建DOM樹

 

DOM樹是html文檔在瀏覽器中的對象表示,可用javascript來操作。

解析是順序執行的,並且只有一個主線程解析。

默認碰到script標籤是要暫停主線程,等執行完裏面代碼再繼續解析html的。


但對於圖片 或 css文件 或設置了async / defer的js文件,則不會影響主線程,而是會異步地加載。


另外,瀏覽器有個預掃描線程,會異步下載字體,css和js,這個過程是異步的,不會影響主線程。

(二) 構建CSSOM樹

CSSOM (CSS Object Model)是CSS在瀏覽器中的對象表示。


(三) 形成渲染樹

瀏覽器從根節點開始,把CSSOM中的樣式合併到DOM中的每個節點上,形成渲染樹 (Render Tree)。

(四) 佈局

瀏覽器會根據樣式計算每個可見節點(寬高和位置等),對所有節點進行佈局和規劃。

對於圖片這類節點,如果沒有指定寬高,瀏覽器會忽略它的大小,等圖片加載完成之後,瀏覽器會重新計算受影響的節點的大小和位置,這個過程叫回流 (Reflow)。

(五) 繪製: 在第一次佈局後就執行

如果發生了迴流,瀏覽器還會發生重繪。

在繪製期間,也可能會發生組合。(渲染期間產生新圖層,如出現下面圖列舉中其一的情況)


最後,加載並執行異步的js。


二、總結

 

DNS查找 - URL 域名 IP 服務器

建立連接 - TCP握手 TLS握手

發起請求獲取服務器響應 - 14kb

渲染網頁: 關鍵渲染路徑(3顆樹 佈局 繪製) 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章