Http報文長度的計算

2022-08-20 07:54:15 字數 798 閱讀 7680

客戶機與伺服器需要某種方式來標示乙個報文在**結束和在下乙個報文在**開始。

一般使用content-length表示body報文體的長度,這樣往後擷取即可獲得整個報文。對於普通的頁面、皆可使用。

報文頭中的transfer-encoding: chunked ,表示報文體body是使用chunked分塊方式拼接成的,不需要content-length指明長度。不需要提前計算總長度。

uploading-image-355497.png

chunked編碼使用若干個chunk串連而成,由乙個標明長度為0的chunk標示結束。

每個chunk分為頭部和正文兩部分。頭部內容指定下一段正文的字元總數(十六進製制的數字)和數量單位(一般不寫);正文部分就是指定長度的實際內容。兩部分之間用回車換行(cr&lf)隔開。

最後乙個長度為0的chunk中的內容是稱為footer的內容,是一些附加的header資訊(通常可以直接忽略)。

解析:這裡面只有乙個有意義的chunke以及乙個footer。第乙個chunk,頭部是3134這兩個位元組,表示的是1和4這兩個ascii字元,被http協議解釋為十六進製制數14,也就是十進位制的20。

後面緊跟0d0a,再接著是20個位元組的chunk正文(圖中的011e~0131)。後面再接著0d0a。

然後就是footer了,30表示ascii字元0,http解釋為長度是0(也說明了這是最後乙個chunk),後面緊跟0d0a,然後正文部分為空,再接0d 0a表示footer結束

Http的報文結構。

http請求報文格式 請求行,多個請求頭,乙個空行,實體內容。1.請求行 請求方法,請求資源部分名稱 協議版本組成。請求方法包括get head put post trace options delete以及擴充套件方法。常用的有http 1.0和http 1.1。post和get的區別 如果是ge...

http報文內的http資訊

1.請求報文和響應報文的首部內容組成 請求行 包含請求的方法,請求uri和http版本。狀態行 包含相應結果的狀態碼,原因短語和http版本。首部字段 通用首部,請求首部,響應首部和實體首部。其他 包含http的rfc裡未定義的首部 cookie等 2.編碼提公升傳輸速率 壓縮傳輸的內容編碼 gzi...

HTTP報文內的HTTP資訊

報文的定義 用於http協議的資訊被稱為http報文 報文由報文首部和報文主體構成,中間由 cr lf 回車 換行 分割開來 由於報文的傳輸可以通過編碼提公升傳輸效率,所以需要了解下報文 message 與實體 entity 的區別 可以看出在一般情況下報文主體和實體主體是一致的,但在傳輸中進行編碼...