-
DNS
查詢- 操作系統(tǒng)首先在本地緩存中查詢(
windows
可以用ipconfig /displaydns
查詢DNS
緩存)烤惊。 - 沒有的話會去系統(tǒng)配置的
DNS
服務(wù)器中查詢(有迭代查詢和遞歸查詢方式绕辖,區(qū)別就是前者是由客戶端去做請求夜畴,后者是由系統(tǒng)配置的DNS
服務(wù)器做請求照卦,得到結(jié)果后將數(shù)據(jù)返回給客戶端)。
- 操作系統(tǒng)首先在本地緩存中查詢(
-
TCP
握手- 應(yīng)用層下發(fā)數(shù)據(jù)給傳輸層,同時
TCP
協(xié)議會指明兩端的端口號行疏,然后下發(fā)給網(wǎng)絡(luò)層。 - 網(wǎng)絡(luò)層中的
IP
協(xié)議會確定IP
地址套像,并且指示了數(shù)據(jù)傳輸中如何跳轉(zhuǎn)路由器酿联。 - 將數(shù)據(jù)包封裝到數(shù)據(jù)鏈路層的數(shù)據(jù)幀結(jié)構(gòu)中,進行物理層傳輸夺巩。
- 應(yīng)用層下發(fā)數(shù)據(jù)給傳輸層,同時
-
TLS
握手-
TLS
握手階段兩端采用非對稱加密方式通信贞让,正式通信階段使用對稱加密方式通信。
-
-
服務(wù)器響應(yīng)
- 數(shù)據(jù)在進入服務(wù)端前劲够,可能會先經(jīng)過負載均衡服務(wù)器震桶,可將請求合理的分發(fā)到多臺服務(wù)器上。
- 請求的資源通常是
html
,還有其他格式:pdf
征绎,image
等蹲姐。
-
瀏覽器判斷狀態(tài)碼
-
200
--> 繼續(xù)解析。 -
300
--> 重定向(有重定向計數(shù)器人柿,超過次數(shù)報錯)柴墩。 -
400\500
--> 報錯。
-
-
瀏覽器解析文件
- 如果是gzip格式會先解壓凫岖,然后通過文件的編碼格式解碼文件江咳。
-
開始渲染
- 解析
html
與css
分別生成DOM
和CSSOM
樹。 - 遇到
script
標簽會判斷是否存在async
或defer
,前者會并行進行下載并執(zhí)行JS
哥放,后者會先下載文件歼指,等待HTML
解析完成后順序執(zhí)行。 - 如果
async
和defer
都沒甥雕,會阻塞渲染流程直到JS執(zhí)行完畢踩身。 -
html
資源完全加載和解析后觸發(fā)DOMContentLoaded
事件。
- 解析
-
生成
Render Tree
并布局-
DOM
和CSSOM
結(jié)合生成渲染樹社露。 - 計算每個對象的位置大小挟阻,根據(jù)渲染樹布局。
- 在生成
Render Tree
的過程中峭弟,瀏覽器同時調(diào)用GPU
繪制附鸽,合成圖層,展示到頁面瞒瘸。
-
點贊坷备、收藏的人已經(jīng)開上蘭博基尼了 (′▽`???)
轉(zhuǎn)載請注明出處!G槌簟;髂恪(http://www.reibang.com/p/a50b19d720d3)