一個頁面從輸入 URL 到頁面加載顯示完成,這個過程中都發生了:
1.瀏覽器補全URL地址
在輸入完URL之后,瀏覽器會自動檢查該地址是否完整,例如是否有添加https協議,若發現不完整,會自動補全。
2.向DNS查詢IP地址
每個域名都對應一個或多個提供相同服務服務器的 IP 地址,只有知道服務器 IP 地址才能建立連接,所以需要通過 DNS 把域名解析成一個 IP 地址。
3.得到IP地址后,建立連接,進行三次握手
即每次建立連接前,客戶端和服務端都要先進行三次對話才開始正式傳輸內容,三次對話的內容大概是這樣的:
(1)客戶端:我要連接你了,可以嗎?
(2)服務端:嗯,我准備好了,連接我吧。
(3)客戶端:那我連接你咯。
4.向該IP地址發送請求
客戶端會通過IP地址向服務端發送一個GET請求,服務端會在80端口接收到這個請求並作出響應。
5.服務器在80端口接收請求,傳送相應內容至瀏覽器
6.瀏覽器解析內容,並繼續搜索頁面內是否有請求,有的話繼續通過IP地址發送至服務器
7.接受完從服務器發送至瀏覽器的內容之后,瀏覽器渲染網頁,把網頁內容呈獻給用戶
8.客戶端與服務端斷開連接,進行四次揮手
即每次斷開連接前,客戶端和服務端都要先進行四次對話才正式斷開連接,四次對話的內容大概是這樣的:
(1)主機向服務器發送一個斷開連接的請求。(不早了,我該走了)
(2)服務器接到請求后發送確認收到請求的信號。(知道了)
(3)服務器向主機發送斷開通知(我也該走了)。
(4)主機接到斷開通知后斷開連接並反饋一個確認信號(嗯,好的),服務器收到確認信號后斷開連接。