1. 程式人生 > >HTTP 03 HTTP 報文

HTTP 03 HTTP 報文

pos service 圖片 請求 moved dir 返回 多行 red

客戶端的HTTP報文, 叫做請求報文

服務器端的叫做 響應報文.

HTTP 報文本身是由多行 (用 CR+LF 作換行符) 數據構成的字符串文本.

HTTP 報文大致分為報文首部 和 報文主體 兩部分.

技術分享

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

技術分享

技術分享

技術分享

在傳輸的過程中, 還可以對報文進行壓縮和編碼. 另外要對報文進行分塊, 以小塊(數據包)的形式進行傳輸

獲取部分內容的範圍請求

以前, 用戶不能使用高速的互聯網時, 下載比較大的圖片就很吃力, 如果下載過程中遇到網絡中斷的情況, 那就必須重頭開始, 為了解決上述問題, 需要一種可恢復的機制. 所謂恢復是指能從之前下載中斷處恢復下載.

Content-Range: 可以用來制定請求部分內容.

針對範圍請求, 響應會返回狀態碼 206 partial content 響應報文, 如果服務器無法響應範圍請求, 則會返回狀態碼 200 OK 和 完整的實體內容.

返回狀態碼

技術分享

200 OK 一切OK

204 No Content 請求已經成功處理, 但在返回的響應報文中不包含實體的主體部分, 另外, 也不允許返回任何實體主體

206 partial content, 表示響應了部分請求

301 Moved Permanently 永久重定向, 狀態表示請求的資源已經被分配了新的 URI, 以後使用新的URI

302 Found 臨時重定向, 表示當次請求的資源已被分配了新的 URI, 希望用戶本次能使用新的URI

303 See Other 根 302 類似, 並且要求用戶下次請求時必須使用 GET 方法.

註意: 當 301, 302, 303 響應狀態碼返回時, 幾乎所有的瀏覽器都會把 POST 改成 GET, 並刪除請求報文內的主題, 之後請求會自動再次發送.

304 Not Modified 根以上的3XX不同, 跟重定向沒啥關系, 表示附帶條件的請求, 如果條件不滿足, 返回304

技術分享

307 Temporary Redirect, 臨時重定向, 與 302 相同

4XX 客戶端錯誤

400 Bad Request, 請求報文中包含語法錯誤

401 Unauthorized 沒有權限, 認證失敗

403 Forbidden 請求的資源被服務器拒絕(服務器無需提供理由)

404 Not Found, 服務器上沒看到你請求的資源

5XX 服務器錯誤

500 Internal Server Error, 表明請求過程中服務器端發生了錯誤.

503 Service Unavailable, 服務器暫時處於超負載或正在進行停機維護, 現在無法處理請求.

HTTP 03 HTTP 報文