Http 分塊傳輸編碼 Transfer-Encoding: chunked
阿新 • • 發佈:2019-01-07
定義
分塊編碼就是把報文分割為若干大小已知的塊,一次傳送到接收端。
常見使用場景
長連線
傳送時無法獲取主體長度
其他傳輸場景
1、非長連線 即傳送完資料後就斷開連線
接收端讀取到EOF(-1)即讀取完畢
2、長連線
固定主體長度,通過響應頭中的Content-Length決定是否讀取結束。
塊資料報文結構
Http響應
HTTP/1.1 200 OK <CR><LF>
Content-type: text/plain<CR><LF>
Transfer-encoding: chunked<CR><LF>
Trailer: Content-MD5<CR ><LF>
<CR><LF>
第一塊(十六進位制標示的分塊大小 27–>39)
27<CR><LF>
We hold these truths to be self-evident<CR><LF>
第二塊(十六進位制標示的分塊大小 26–>38)
26<CR><LF>
,that all men are created equal,that<CR><LF>
最後一塊(以0結尾)
0<CR><LF>
拖掛(如果在響應首部中有定義)
Content-MD5:ofj0a39889a4ug00fas9f3jf0jf<CR><LF>
拖掛可以包含附帶的首部欄位,他們的值在報文開始的時候可能是無法確定的(例如,必須要先生成主體結構)