舉個栗子,從瀏覽器地址欄輸入https://www.baidu.com 到頁面呈現百度頁面呈現css
1.從DNS中獲得連接ip地址html
①從瀏覽器DNS緩存瀏覽器
②從系統DNS緩存中去,本機系統hosts文件中若是有映射,就返回映射的ip地址緩存
③從局域網路由器中DNS緩存獲取映射地址服務器
④從DNS服務器緩存獲取映射地址dom
⑤服務器中查找,com->baidu->www佈局
2.TCP鏈接,三次握手3d
①瀏覽器發起,詢問服務器是否支持響應htm
②服務器發起,回覆瀏覽器已準備,能夠響應,正在等待blog
③瀏覽器接收到後,發起確認ok信號,告訴服務器,瀏覽器準備發送數據
3.數據請求(http請求)階段
瀏覽器:請求行、請求頭、請求體
服務器:響應行、響應頭、響應體
4.瀏覽器處理頁面響應階段
解析按瀏覽器內置的各自解析器遵循ast(抽象語法樹)規則進行解析
①html先加載,由瀏覽器html解析器解析,生成dom樹
②遇到style或link樣式,由css解析器解析,生成cssom樹
③script標籤,由js引擎解析並執行js邏輯
④dom樹和cssom樹結合生成渲染樹
⑤若是js邏輯有修改dom或者css,則dom樹和cssom樹變化從新合成渲染樹
⑥瀏覽器根據渲染樹計算佈局和各自節點的幾何信息,而後繪製到屏幕
5.斷開鏈接,TCP四次揮手
①瀏覽器發起,告訴服務器,請求的內容發送完,關閉發請求,準備結束
②服務器發起,告訴瀏覽器,請求的內容我接收完,關閉接收請求。
③服務器發起,告訴瀏覽器,響應的內容發送完,響應要關閉結束
④瀏覽器發起,告訴服務器,響應的內容也接收完了,關閉接收響應。