http協議報文有兩種:請求報文和響應報文,這兩種報文結構是差不多的,都由三個部分組成,依次是:
1)start line 開始行(在請求報文中叫請求行,響應報文中叫狀態行)如:get /index.jsp http/ (crlf)
2)header 報頭 如:accept:*** host:*** user-agent等
3)body 訊息正文
其中1)和2)部分必須是ascii碼字元
3)中可以是任何編碼,可以是字元編碼,也可以是影象編碼等等,到底是什麼,通過2)中的content-type來說明
而在ascii碼字元中有部分保留字元不能出現在直接出現在1)和2)的部分地區。如:保留字元「=」,在get方法中位址有可能包含引數如key=value,「=」就不能直接出現在key和value中,key要是『=man』,那麼就應該編碼成%3dman,其中3d是「=」的ascii碼的十六進製制表示。原則上這種百分比編碼只用於保留的ascii碼,現在人們也擴充套件了這種方法,利用這種方法編碼複雜字元,如gb2312和utf-8等,如把gb2312的「好人」編碼為%ba%c3%c8%cb,又比如常見的%20則是空格符的編碼後的樣子
http協議chunk 編碼
有時伺服器生成http回應是無法確定訊息大小的,這時用content length就無法事先寫入長度,而需要實時生成訊息長度,這時伺服器一般採用chunked編碼。http協議之chunk資料結構 chunk編碼其實是一種動態資料傳輸協議,針對大資料可以動態傳輸,網頁可以動態顯示。chunk編碼格式...
HTTP協議chunked編碼
當不能預先確定報文體的長度時,不可能在頭中包含content length域來指明報文體長度,此時就需要通過transfer encoding域來確定報文體長度。此時,transfer encoding域的值應當為chunked,表明採用chunked編碼方式來進行報文體的傳輸。chunked編碼是...
HTTP協議中內容編碼和傳輸編碼的區別
內容編碼 壓縮文件,例如伺服器在把html文件傳送給客戶端時,對文件進行壓縮,可以減少傳輸文件是時間。內容編碼過程 1 伺服器生成原始響應報文,其中有原始的content type和content length首部。2 內容編碼伺服器對原始響應報文進行編碼,並在編碼後的報文增加content enc...