圖解HTTP系列--(二)

李群彬發表於2018-05-06

一、HTTP報文

  主要包括報文首部和報文主體。 1、請求報文和響應報文結構

圖解HTTP系列--(二)
2、請求報文和響應報文結構例項
圖解HTTP系列--(二)
3、編碼提升傳輸效率   通常,報文主體等於實體主體。只有當傳輸中進行編碼操作時,實體主體的內容發生變化,才導致他和報文主體產生差異。
圖解HTTP系列--(二)
如圖,即為壓縮傳輸,是由服務端對實體內容進行編碼壓縮,然後傳送給客戶端,再由客戶端接受兵負責解碼。 常用的內容編碼由一下幾種

  • gzip(GNU zip)
  • compress(UNIX系統的標準壓縮)
  • deflate(zlib)
  • identity(不進行編碼)

二、HTTP/1.1的首部欄位

HTTP/1.1規範定義瞭如下47種首部欄位

  • 通用首部欄位
    圖解HTTP系列--(二)
  • 請求首部欄位
    圖解HTTP系列--(二)
  • 響應首部欄位
    圖解HTTP系列--(二)
  • 通實體首部欄位
    圖解HTTP系列--(二)

三、HTTP狀態碼

圖解HTTP系列--(二)
HTTP的狀態碼是用來描述請求的處理結果。記錄在內的狀態碼多達40種,若加上全球資訊網附加的就達到60餘種。下面我們主要介紹下具有代表性的14種。

1、2XX 成功

  • 200 OK-->請求被服務端正常處理
  • 204 No Content -->請求成功,但沒有資源返回
  • 206 Partial Content -->對資源某一部分的請求

2、3XX 重定向

  • 301 Moved Permanently-->永久重定向。資源已被分配到新的URI
  • 302 Found -->臨時重定向。資源的URI已臨時定位到其他位置
  • 303 See Other -->對資源某一部分的請求
  • 304 Not Modified -->資源找到,但不符合要求。用於請求報文中含有If引數的請求
  • 307 Temporary Redirect -->臨時跳轉。被請求的資源在臨時從不同的URL響應請求

  當301、302、303響應的狀態碼返回時,幾乎所有的瀏覽器都會把POST請求改成GET請求,並刪除請求報文內的主體,之後請求會自動再次傳送。   301、302標準是禁止將POST方法改成GET方法的,但實際使用時大家都會這麼做。

3、4XX 客戶端錯誤

  • 401 Unauthorized-->請求報文中存在語法錯誤
  • 403 Forbidden -->請求資源的訪問被服務端拒絕
  • 404 Not Found -->沒有請求的資源

4、5XX 服務端錯誤

  • 500 Internal Server Error-->服務端執行請求時發生錯誤
  • 502 Bad Gateway -->錯誤閘道器
  • 503 Service Unavailable -->服務端暫時處於超載或者正在進行維護 狀態碼的內容大致就給大家整理這麼多,大家也可以參考下面的連結去理解 兩張趣圖助你理解狀態碼的含義~

    總結

    這篇文章主要總結了第三章-第六章的內容,其中我省略掉了部分內容(如:第五章的Web伺服器的內容),比較重要的是第六章對每個欄位的一些詳細說明,由於內容比較多,就不放在博文中(不然內容又變得又臭又長)。所以,如果有要了解詳情欄位的可以下載該書的PDF進行了解。

那本期內容就到這邊,下期將整理HTTPS的內容 注:百度雲連結:《圖解HTTP》 往期回顧: 圖解HTTP系列--(一) - 掘金

相關文章