HTTP報(bào)文結(jié)構(gòu)
HTTP報(bào)文大致可分為報(bào)文首部和報(bào)文主體兩塊搓茬。如下圖所示
HTTP報(bào)文報(bào)文的結(jié)構(gòu).png
請求報(bào)文和響應(yīng)報(bào)文的結(jié)構(gòu).png
請求報(bào)文(上)和響應(yīng)報(bào)文(下)的實(shí)例.png
請求報(bào)文和響應(yīng)報(bào)文的首部內(nèi)容由一下數(shù)據(jù)組成:
請求行:包含用于請求的方法座柱,請求URL和HTTP版本晰骑。
狀態(tài)行:包含表明響應(yīng)結(jié)果的狀態(tài)碼布隔,原因短語和HTTP版本趟济。
首部字段:包含表示請求和響應(yīng)的各種條件和屬性的各類首部。一般有四種首部:分別是:通用首部砰粹,請求首部唧躲,響應(yīng)首部和實(shí)體首部造挽。
-
報(bào)文主體和實(shí)體主題的區(qū)別
報(bào)文:(message),是HTTP通信中的基本單位弄痹,由8位組字節(jié)流組成饭入,通過HTTP通信傳輸。
實(shí)體:(entity)作為請求或響應(yīng)的有效載荷數(shù)據(jù)被傳輸肛真,其內(nèi)容由實(shí)體受不和實(shí)體主題組成谐丢。
HTTP報(bào)文的主體用于傳輸請求或響應(yīng)的實(shí)體主體。通常蚓让,報(bào)文主體等于實(shí)體主體乾忱,只有當(dāng)傳輸中進(jìn)行編碼操作時(shí),實(shí)體主體的內(nèi)容發(fā)生變化历极,才導(dǎo)致它和報(bào)文主體產(chǎn)生差異窄瘟。
HTTP發(fā)送多種數(shù)據(jù)的多部分對象集合
HTTP協(xié)議中采納了多部分對象集合,發(fā)送的一份報(bào)文主體內(nèi)可還有多類型實(shí)體趟卸,通常是在圖片或者文件等上傳時(shí)使用蹄葱。
多部分對象集合包含的對象如下:
- multipart/form-data:在web表單文件上傳時(shí)使用。
-
multipart/byteranges:狀態(tài)碼206(partial Content锄列,部分內(nèi)容)響應(yīng)報(bào)文包含了多個(gè)范圍的內(nèi)容時(shí)使用图云。
(筆記來自:《圖解HTTP》人民郵電出版社 書籍)