請求不到返回體 瀏覽器之HTTP協議請求全過程

2021-10-14 21:54:07 字數 1734 閱讀 6959

通過《瀏覽器之資料報傳輸》我們基本已經搞清了tcp、ip、udp之前的關係,現在我們再來看一下http協議。

計算機七層模型自下而上,ip屬於傳輸層協議,tcp和udp屬於網路層協議,而最上層就是http應用層協議,也就是說tcp是tcp/ip協議的呼叫者,http協議是通過tcp/ip協議進行傳輸資料的。

(資料報是由主機a的應用層http協議建立,最後交由主機b應用層的http協議解析)

整個http請求構建過程如下:

1.構建請求

瀏覽器構建請求行資訊,包含了請求方法、請求 uri和 http 協議版本。

get /index.html http1.1
2. 查詢快取① dns快取:請求頭中目標伺服器host通常使用網域名稱,想要獲取伺服器ip還需要經過一步dns解析。dns層層快取可以幫助我們快速解析找到目標伺服器。

② 瀏覽器快取:我們常說「被瀏覽器快取了,需要重刷一下頁面」,指的是瀏覽器會將已請求過的資源檔案在本地儲存乙份副本,當再次請求時若存在快取檔案,則不再執行下述步驟,直接返回快取檔案,這時候請求的返回狀態碼是304。

瀏覽器快取

3. 準備 ip 位址和埠

為tcp/ip協議請求準備ip位址(dns解析-查詢快取階段)與該程序埠號。

4.等待 tcp 佇列

將請求事件插入至tcp佇列,等待tcp佇列輪訓執行。瀏覽器同一時間最多可建立 6 個 tcp 連線,佇列長度<=6時,即可建立連線。

5. 建立 tcp 連線

tcp連線進入準備階段。與目標伺服器三次握手,為後續資料傳輸做好準備。

6. 傳送 http 請求

http請求包含三部分:請求行(構建請求階段)、請求頭、請求體。

http 請求

7.返回請求

伺服器端接收到客戶端的請求,將作出處理並返回相應資料,包含響應行、響應頭、響應體。

http響應資料格式

瀏覽器會根據響應資料作出不同的反應,例如不同的content-encoding(編碼格式)對應使用不同的解碼方式;conent-type(資料型別)若為檔案型別返回伺服器檔案,若為json返回xhr;狀態碼為200代表請求成功,404表示路徑不存在等。

7.斷開連線

若非長連線,tcp將斷開與服務端的連線。持久連線可復用通道(keep-alive/websocker),減少請求握手、揮手過程。

以上就是http連線全過程,你可以根據下圖檢視、分析整個連線週期

http全連線過程

瀏覽器傳送http請求過程分析

請求過程整體流程 網域名稱解析 發起tcp的3次握手 建立tcp連線後發起http請求 伺服器響應http請求,瀏覽器得到html 瀏覽器解析html 並請求html 中的資源 如js css 等 瀏覽器對頁面進行渲染呈現給使用者.下面以chrome瀏覽器訪問www.google.com為例按流程逐...

瀏覽器中的http請求方式

一 在瀏覽器 框,輸入url後的請求是什麼?在乙個空的標籤頁,然後輸入乙個 第乙個網路請求,就是瀏覽器根據 發起的請求,點開檢視。我們發現瀏覽器輸入 之後,預設發起get請求。get請求方法在什麼情況下使用?根據http規範,get方法用於查詢資訊,記住,只是查詢資訊,想伺服器請求資訊,僅此而已。二...

轉!!關於http請求 瀏覽器 中文編碼

不同瀏覽器對http請求的編碼行為存在差異,由於目前主流用谷歌瀏覽器,這邊以谷歌瀏覽器分析 1.http請求,google chrome瀏覽器會對請求的url中非ascii碼字元進行編碼。這裡不是指對整個url進行編碼,而是僅僅對非ascii碼字元部分進行編碼。utf 8 編碼,轉16進製制 2.後...