圖解HTTP-閱讀筆記 第3章 HTTP報文內的HTTP信息

一、HTTP報文

用於HTTP協議交互的信息被稱爲HTTP報文。請求端(客戶端)的HTTP報文叫作請求報文,響應端(服務端)的叫作響應報文。

二、請求報文及響應報文的結構

數據組成:

  • 請求行:包含用於請求的方法,請求URI和HTTP版本
  • 狀態行:包含代表響應結果的狀態碼,緣由短語和HTTP版本
  • 首部字段:包含表示請求和響應的各類條件和屬性的各種首部(通常有4種首部,分別是:通用首部、請求首部、響應首部和實體首部)
  • 其餘:可能包含HTTP的RFC裏未定義的首部(Cookie等)

請求報文

請求行-->請求首部字段-->通用首部字段-->實體首部字段-->其餘
複製代碼

響應報文

狀態行-->響應首部字段-->通用首部字段-->實體首部字段-->其餘
複製代碼

三、編碼提高傳輸速率

  • 報文(message):是HTTP通訊中的基本單位,由8位組字節流(octet sequence,其中octet爲8個比特)組成,經過HTTP通訊傳輸
  • 實體(entity):做爲請求或響應的有效載荷數據(補充項)被傳輸,其內容由實體首部和實體主體組成
  • 壓縮傳輸的內容編碼:gzip(GNU zip)、compress(UNIX 系統的標準壓縮)、deflate(zlib)、identity(不進行編碼)
  • 分割發送的分塊傳輸編碼

四、發送多種數據的多部分對象集合

HTTP協議中採用了多部分對象集合,發送的一份報文主體內可含有多類型實體。一般是在圖片或文本文件等上傳時使用

  • multipart/form-data:在Web表單上傳時使用
  • multipart/byteranges:狀態碼206(Partial Content ,部份內容)響應報文包含了多個範圍的內容時使用

五、獲取部份內容的範圍請求

執行範圍請求時,會用到首部字段Range來指定資源的byte範圍

  • 5001~10000字節
Range: bytes=5001-10000
複製代碼
  • 從5001字節以後的所有
Range: bytes=5001-
複製代碼
  • 從一開始到3000字節和5000~7000字節的多重範圍
Range: bytes=0-3000, 5000-7000
複製代碼

六、內容協商返回最合適的內容

內容協商會以語言、字符集、編碼方式等爲基準判斷響應的資源。包含在請求報文中的某些首部字段就是判斷的基準:

  • Accept
  • Accept-Charset
  • Accept-Encoding
  • Accept-Language
  • Content-Language

內容協商技術有如下3種類型:

  • 服務器驅動協商(由服務器進行內容協商,以請求的首部字段爲參考,在服務器端自動處理)
  • 客戶端驅動協商(由客戶端進行內容協商,用戶從瀏覽器顯示的可選項列表中手動選擇)
  • 透明協商(是服務器驅動和客戶端驅動的結合體,是由服務器端和客戶端各自進行內容協商的一種方法)
相關文章
相關標籤/搜索