一、讀取緩存
瀏覽器先查看瀏覽器緩存-系統緩存-路由器緩存,如果緩存中有,會直接在屏幕中顯示頁面內容。若沒有緩存,則直接進行下一步
二、DNS 解析
進行域名解析,獲取對應的IP地址
三、TCP 連接
瀏覽器知道了服務器的 IP 地址,就要與服務器建立連接。
通信連接的建立需要TCP的三次握手:
(1)主機向服務器發送一個建立連接的請求(您好,我想認識您);
(2)服務器接到請求后發送同意連接的信號(好的,很高興認識您);
(3)主機接到同意連接的信號后,再次向服務器發送了確認信號(我也很高興認識您),自此,主機與服務器兩者建立了連接。
四、發送 HTTP 請求
發送HTTP請求的過程就是構建HTTP請求報文并通過TCP協議中發送到服務器指定端口(HTTP協議80/8080, HTTPS協議443)。
HTTP請求報文是由三部分組成: 請求行, 請求報頭和請求正文。
五、服務器處理請求并返回HTTP報文
HTTP響應報文也是由三部分組成: 狀態碼, 響應報頭和響應報文。
六、瀏覽器解析渲染頁面
瀏覽器是一個邊解析邊渲染的過程。首先瀏覽器解析HTML文件構建DOM樹,然后解析CSS文件構建渲染樹,等到渲染樹構建完成后,瀏覽器開始布局渲染樹并將其繪制到屏幕上。
七、連接結束
通過四次揮手關閉連接。
(1)主機向服務器發送一個斷開連接的請求(不早了,我該走了);
(2)服務器接到請求后發送確認收到請求的信號(知道了);
(3)服務器向主機發送斷開通知(我也該走了);
(4)主機接到斷開通知后斷開連接并反饋一個確認信號(嗯,好的),服務器收到確認信號后斷開連接;
PS:本文非原創,內容均摘抄自他人文章,只是為了方便學習啦,見諒。