請求行:
method:請求方法version:版本get 請求指定的頁面資訊,並返回實體主體。
head 類似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭
post 向指定資源提交資料進行處理請求(例如提交表單或者上傳檔案)。資料被包含在請求體中。post請求可能會導致新的資源的建立和/或已有資源的修改。
put 從客戶端向伺服器傳送的資料取代指定的文件的內容。
delete 請求伺服器刪除指定的頁面。
connect http/1.1協議中預留給能夠將連線改為管道方式的**伺服器。
options 允許客戶端檢視伺服器的效能。
trace 回顯伺服器收到的請求,主要用於測試或診斷。
請求首部:
host:連線的目標主機空行:\r\nuser-agent:**。瀏覽器型別和版本
accept:請求的物件型別。『/』表示任意型別
accept-language:使用的語言種類
accept-encoding:使用的編碼種類
cache-control:請求時的快取指令
pragma:防止頁面被快取
connection:連線選項
請求正文:
狀態行:
版本響應**:
1**表示接收到請求,繼續程序,在傳送post後可以收到該應答。
2**表示請求的操作成功,在傳送get後返回。
3**表示重發,為了完成操作必須進一步動作。
4**表示客戶端出現錯誤。
5**表示伺服器出現錯誤。
其餘部分稱為應答實體。
響應首部:
date:訊息傳送的時間空行:\r\ncontent-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一致,那麼可以認為從**快取伺服器中獲取資源,快取命中。
響應正文:
Http協議 請求報文和響應報文
這相當於是一種規範,網路中資料的傳輸在位於應用之下的各層 傳輸層,應用層 來完成的,在tcp ip協議接收到資料時,我們是不能直接使用和瀏覽的,需要先通過一種規範來進行梳理,也就是解碼,得到瀏覽器支援的一種格式,才能被我們使用.在web開發中,熟悉http協議中的報文結構是很重要的,比如,如果對ht...
重溫Http協議 請求報文和響應報文
這相當於是一種規範,網路中資料的傳輸在位於應用之下的各層 傳輸層,應用層 來完成的,在tcp ip協議接收到資料時,我們是不能直接使用和瀏覽的,需要先通過一種規範來進行梳理,也就是解碼,得到瀏覽器支援的一種格式,才能被我們使用.在web開發中,熟悉http協議中的報文結構是很重要的,比如,如果對ht...
重溫Http協議 請求報文和響應報文
這相當於是一種規範,網路中資料的傳輸在位於應用之下的各層 傳輸層,應用層 來完成的,在tcp ip協議接收到資料時,我們是不能直接使用和瀏覽的,需要先通過一種規範來進行梳理,也就是解碼,得到瀏覽器支援的一種格式,才能被我們使用.在web開發中,熟悉http協議中的報文結構是很重要的,比如,如果對ht...