1. 程式人生 > 其它 >瀏覽器的工作原理是什麼?

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

瀏覽器的工作原理

一、知識點

① 瀏覽器進行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顆樹 佈局 繪製)