網頁輸入 URL 的過程

輸入url的過程(6步):域名解析得到IP地址 -> 建立tcp連接 -> 瀏覽器發送http請求 -> 服務器處理http請求 -> 瀏覽器渲染頁面 -> 斷開tcp連接

1. 域名解析:
當我們在瀏覽器中輸入一個URL,例如”www.baidu.com”時,這個地址並不是百度網站真正意義上的地址。互聯網上每一臺計算機的唯一標識是它的IP地址,因此我們輸入的網址首先需要先解析爲IP地址,這一過程叫做DNS解析。

DNS解析是一個遞歸查詢的過程。例如,我們需要解析”www.baidu.com”時,會經歷以下步驟:
1.在本地域名服務器中查詢IP地址,未找到域名;
2.本地域名服務器迴向根域名服務器發送請求,未找到域名;
3.本地域名服務器向.com頂級域名服務器發送請求,未找到域名;
4.本地域名服務器向.baidu.com域名服務器發送請求,找到該域名,將對應的IP返回給本地域名服務器。

2. TCP連接:
HTTP協議是使用TCP協議作爲其傳輸層協議的,在拿到服務器的IP地址後,瀏覽器客戶端會與服務器建立TCP連接。該過程包括三次握手:
1.第一次握手:建立連接時,客戶端向服務端發送請求報文
2.第二次握手:服務器收到請求報文後,如同意連接,則向客戶端發送確認報文
3.第三次握手,客戶端收到服務器的確認後,再次向服務器給出確認報文,完成連接。

三次握手主要是爲了防止已經失效的請求報文字段發送給服務器,浪費資源。

3. 瀏覽器發送HTTP請求:
瀏覽器構建http請求報文,並通過TCP協議傳送到服務器的指定端口。http請求報文一共包括三個部分:
1.請求行:指定http請求的方法、url、http協議版本等
2.請求頭:描述瀏覽器的相關信息,語言、編碼等。如下
在這裏插入圖片描述
3.請求正文:當發送POST, PUT等請求時,通常需要向服務器傳遞數據。這些數據就儲存在請求正文中。

4. 服務器處理HTTP請求:
服務器處理http請求,並返回響應報文。響應報文包括三個部分:
1.狀態碼:http服務常用的狀態碼及其含義如下

狀態碼 含義
1xx 服務器收到請求,客戶端可繼續發送請求
2xx 請求成功
3xx 重定向
4xx 客戶端錯誤
5xx 服務器錯誤

2.響應頭:包含了響應的相關信息,如日期等
在這裏插入圖片描述
3.響應正文:服務器返回給瀏覽器的文本信息,通常的html、js、css、圖片等就包含在這一部分裏面。

5. 瀏覽器渲染:
瀏覽器接受到http服務器發送過來的響應報文,並開始解析html文檔,渲染頁面。具體的渲染過程包括:構建DOM樹、構建渲染樹、定位頁面元素、繪製頁面元素等。

6. 斷開TCP連接:
客戶端與服務器四次揮手,斷開tcp連接。四次揮手:
1.第一次揮手:客戶端想分手,發送消息給服務器
2.第二次揮手:服務器通知客戶端已經接受到分手請求,但還沒做好分手準備
3.第三次回收:服務器已經做好分手準備,通知客戶端
4.第四次揮手:客戶端發送消息給服務器,確定分手,服務器關閉連接

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