一個url域名網址從輸入到頁面展現過程詳細分析

簡單概括:
加載過程:
* 瀏覽器根據DNS服務器解析得到域名的IP地址
* 向這個IP發送HTTP請求
* 服務器收到、處理、返回HTTP請求
* 瀏覽器得到返回的內容
渲染過程:
* 根據HTML結構生成DOM樹
* 根據CSS生成CSSOM
* 將DOM和CSSOM結合形成RenderTree
* 根據RenderTree開始渲染和展示
* 遇到script時,會執行並阻塞渲染

詳細分析:
一、瀏覽器通過DNS解析得到url的ip地址
1、輸入一個url地址
2、瀏覽器查找域名的ip地址(瀏覽器緩存–>系統緩存–>路由器緩存–>ISP DNS–>跟域名服務器遞歸搜索 直至拿到ip)
3、瀏覽器向服務器發送HTTP請求
這裏寫圖片描述

二、瀏覽器拿到服務器ip地址後,與服務器建立TCP連接
通過三次握手建立連接:
1、客戶端向服務器發送連接請求的報文;
2、服務器收到請求後,同意建立連接,向客戶端發送確認報文;
3、客戶端收到服務器確認報文後,再次向服務器發出報文,確認已收到確認報文。
三、建立TCP連接後,瀏覽器向服務器發送http請求
瀏覽器發出取文件指令GET
四、服務器響應http請求,將請求的指定資源發送給瀏覽器

五、瀏覽器釋放TCP連接
通過四次揮手:
1、瀏覽器向服務器發送釋放連接報文;
2、服務器收到釋放報文後,發出確認報文,然後將服務器上爲傳完的數據發送完;
3、服務器數據傳輸完成後,向瀏覽器發送釋放連接請求;
4、瀏覽器收到報文後,發出確認,然後等待一段時間後,釋放TCP連接;

六、瀏覽器將完整的html代碼進行解析渲染,如果遇到外部應用的css,圖片等資源 同樣發送一個http請求。
渲染過程:
* 根據HTML結構生成DOM樹
* 根據CSS生成CSSOM
* 將DOM和CSSOM結合形成RenderTree
* 根據RenderTree開始渲染和展示
* 遇到script時,會執行並阻塞渲染

七、至至渲染至完整頁面出來。

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