從url輸入網址

面試題:從一個url地址到頁面渲染完成 發生了什麼

1.DNS解析 將域名地址解析爲IP地址
瀏覽器的DNS緩存
系統DNS緩存
路由器DNS緩存
網絡運營商DNS緩存
遞歸搜索
2.TCP鏈接 TCP三次握手
第一次握手,由瀏覽器發起,告訴服務器我要發請求了
第二次握手 由服務器發起 告訴瀏覽器我準備接受了 你趕緊發送吧
第三次握手 由瀏覽器發起 告訴服務器我馬上就發了 準備接收吧

3.發送請求
請求報文 http協議的通信內容

4接受響應
響應報文

5渲染頁面
遇見HTML標記 瀏覽器調用html解析器解析成Token並構建成dom樹
遇見style/link標記 瀏覽器會調用css解析器處css標記並構建成cssom樹
遇到script標記 調用js解析器 處理script代碼(綁定事件 修改dom、cssom樹)
將dom樹和cssom樹合併成一個渲染樹
根據渲染樹來計算佈局 將各個節點顏色繪製到屏幕上(渲染)

 注意:
 這五個步驟不一定按順序執行  如果dom樹 或者cssom樹被修改了可能會執行多次佈局和渲染
 往往實際頁面中,這些步驟都會執行多次的

6.斷開連接 TCP四次揮手
第一次揮手 由瀏覽器發起的 發送給服務器 我東西發送完了(請求報文),你準備關閉吧
第二次揮手 由服務器發起的 告訴瀏覽器我東西接受完了(請求報文) 我準備關閉了 你也準備吧
第三次揮手 有服務器發起 告訴瀏覽器我東西發送完了(響應報文) 你準備關閉吧
第四次揮手 由瀏覽器發起 告訴服務器 我東西接受完了(響應報文) 準備關閉了 你也準備吧

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