HTTP協議請求和響應報文分析

2021-09-24 01:42:08 字數 1754 閱讀 1733

請求行:

method:請求方法

get 請求指定的頁面資訊,並返回實體主體。

head 類似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭

post 向指定資源提交資料進行處理請求(例如提交表單或者上傳檔案)。資料被包含在請求體中。post請求可能會導致新的資源的建立和/或已有資源的修改。

put 從客戶端向伺服器傳送的資料取代指定的文件的內容。

delete 請求伺服器刪除指定的頁面。

connect http/1.1協議中預留給能夠將連線改為管道方式的**伺服器。

options 允許客戶端檢視伺服器的效能。

trace 回顯伺服器收到的請求,主要用於測試或診斷。

version:版本

請求首部:

host:連線的目標主機

user-agent:**。瀏覽器型別和版本

accept:請求的物件型別。『/』表示任意型別

accept-language:使用的語言種類

accept-encoding:使用的編碼種類

cache-control:請求時的快取指令

pragma:防止頁面被快取

connection:連線選項

空行:\r\n

請求正文:

狀態行:

版本

響應**:

1**表示接收到請求,繼續程序,在傳送post後可以收到該應答。

2**表示請求的操作成功,在傳送get後返回。

3**表示重發,為了完成操作必須進一步動作。

4**表示客戶端出現錯誤。

5**表示伺服器出現錯誤。

其餘部分稱為應答實體。

響應首部:

date:訊息傳送的時間

content-type:指明傳送給接收者的實體正文的**型別

content-length:指明實體正文的長度,以位元組方式儲存的十進位制數字來表示

transfer-encoding:chunked 代表這個報文採用了分塊編碼。這時,報文中的實體需要改為用一系列分塊來傳輸。每個分塊包含十六進製制的長度值和資料,長度值獨佔一行,長度不包括它結尾的crlf(\r\n),也不包括分塊資料結尾的 crlf。最後乙個分塊長度值必須為 0,對應的分塊資料沒有內容,表示實體結束

connection:連線選項

expires:實體報頭域給出響應過期的日期和時間

server:響應報頭域包含了伺服器用來處理請求的軟體資訊。

last-modified:實體報頭域用於指示資源的最後修改日期和時間

etag:當使用者再次請求該資源時,將在http request 中加入if-none-match資訊(etag的值)。如果伺服器驗證資源的etag沒有改變(該資源沒有更新),將返回乙個304狀態告訴客戶端使用本地快取檔案。否則將返回200狀態和新的資源和etag. 使用這樣的機制將提高**的效能

cache-control:響應時的快取指令

x-host:

content-encoding:web伺服器表明自己使用了什麼壓縮方法(gzip,deflate)壓縮響應中的物件。

age:假設該請求date比當前時間要早,並且如果date+age(秒)與主請求url中的date一致,那麼可以認為從**快取伺服器中獲取資源,快取命中。

空行:\r\n

響應正文:

Http協議 請求報文和響應報文

這相當於是一種規範,網路中資料的傳輸在位於應用之下的各層 傳輸層,應用層 來完成的,在tcp ip協議接收到資料時,我們是不能直接使用和瀏覽的,需要先通過一種規範來進行梳理,也就是解碼,得到瀏覽器支援的一種格式,才能被我們使用.在web開發中,熟悉http協議中的報文結構是很重要的,比如,如果對ht...

重溫Http協議 請求報文和響應報文

這相當於是一種規範,網路中資料的傳輸在位於應用之下的各層 傳輸層,應用層 來完成的,在tcp ip協議接收到資料時,我們是不能直接使用和瀏覽的,需要先通過一種規範來進行梳理,也就是解碼,得到瀏覽器支援的一種格式,才能被我們使用.在web開發中,熟悉http協議中的報文結構是很重要的,比如,如果對ht...

重溫Http協議 請求報文和響應報文

這相當於是一種規範,網路中資料的傳輸在位於應用之下的各層 傳輸層,應用層 來完成的,在tcp ip協議接收到資料時,我們是不能直接使用和瀏覽的,需要先通過一種規範來進行梳理,也就是解碼,得到瀏覽器支援的一種格式,才能被我們使用.在web開發中,熟悉http協議中的報文結構是很重要的,比如,如果對ht...