從瀏覽器地址欄輸入url到頁面呈現

舉個栗子,從瀏覽器地址欄輸入https://www.baidu.com 到頁面呈現百度頁面呈現

1.從DNS中得到鏈接ip地址

  ①從瀏覽器DNS緩存

  ②從系統DNS緩存中去,本機系統hosts文件中如果有映射,就返回映射的ip地址

  ③從局域網路由器中DNS緩存獲取映射地址

  ④從DNS服務器緩存獲取映射地址

  ⑤服務器中查找,com->baidu->www

2.TCP連接,三次握手

  ①瀏覽器發起,詢問服務器是否支持響應

  ②服務器發起,回覆瀏覽器已準備,可以響應,正在等待

  ③瀏覽器接收到後,發起確認ok信號,告訴服務器,瀏覽器準備發送數據

3.數據請求(http請求)階段

  瀏覽器:請求行、請求頭、請求體

  服務器:響應行、響應頭、響應體

4.瀏覽器處理頁面響應階段

  解析按瀏覽器內置的各自解析器遵循ast(抽象語法樹)規則進行解析

  ①html先加載,由瀏覽器html解析器解析,生成dom樹

  ②遇到style或link樣式,由css解析器解析,生成cssom樹

  ③script標籤,由js引擎解析並執行js邏輯

  ④dom樹和cssom樹結合生成渲染樹

  ⑤如果js邏輯有修改dom或者css,則dom樹和cssom樹變化重新合成渲染樹

  ⑥瀏覽器根據渲染樹計算佈局和各自節點的幾何信息,然後繪製到屏幕

5.斷開連接,TCP四次揮手

  ①瀏覽器發起,告訴服務器,請求的內容發送完,關閉發請求,準備結束

  ②服務器發起,告訴瀏覽器,請求的內容我接收完,關閉接收請求。

  ③服務器發起,告訴瀏覽器,響應的內容發送完,響應要關閉結束

  ④瀏覽器發起,告訴服務器,響應的內容也接收完了,關閉接收響應。

 

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