從輸入URL到渲染出整個頁面的過程包括三個部分: 1、DNS解析URL的過程 2、瀏覽器發送請求與伺服器交互的過程 3、瀏覽器對接收到的html頁面渲染的過程 一、DNS解析URL的過程 DNS解析的過程就是尋找哪個伺服器上有請求的資源。因為ip地址不容易記憶,一般會使用URL功能變數名稱(如www.bai ...
從輸入URL到渲染出整個頁面的過程包括三個部分:
1、DNS解析URL的過程
2、瀏覽器發送請求與伺服器交互的過程
3、瀏覽器對接收到的html頁面渲染的過程
一、DNS解析URL的過程
DNS解析的過程就是尋找哪個伺服器上有請求的資源。因為ip地址不容易記憶,一般會使用URL功能變數名稱(如www.baidu.com)作為網址。DNS解析就是將功能變數名稱翻譯成IP地址的過程。
具體過程:
1)瀏覽器緩存:瀏覽器會按照一定的頻率 緩存DNS記錄
2)操作系統緩存:如果瀏覽器緩存中找不到需要的DNS記錄,就會取操作系統中找
3)路由緩存:路由器也有DNS緩存
4)ISP的DNS伺服器:ISP有專門的DNS伺服器應對DNS查詢請求
5)根伺服器:ISP的DNS伺服器找不到之後,就要向根伺服器發出請求,進行遞歸查詢
二、瀏覽器與伺服器交互過程
1)瀏覽器根據解析到的IP地址和埠號發起http請求
http請求包括header和body。header中包括請求的方式(get和post)、請求的協議 (http、https、ftp)、請求的地址ip、緩存cookie。body中有請求的內容。
2)http請求到達傳輸層,利用tcp協議與伺服器建立連接(三次握手)
3)伺服器接收到http請求之後,開始搜索html頁面,併發送響應報文
4)瀏覽器接收到返回的html頁面之後,若狀態碼顯示成功,開始進行頁面的渲染
三、瀏覽器頁面渲染過程
1)瀏覽器通過HTML parse根據深度遍歷的方式把html節點遍歷成dom 樹
2)將css解析成CSS DOM樹
3)將dom樹和CSS DOM樹構造成render樹
4)根據得到的render樹 計算所有節點在屏幕中的位置進行佈局
5)遍歷render樹並調用硬體API繪製所有節點
文章主要參考:
https://blog.csdn.net/zhm0303/article/details/83054179