1. 程式人生 > >HTTP圖解讀書筆記(第四章 返回結果的HTTP狀態碼)

HTTP圖解讀書筆記(第四章 返回結果的HTTP狀態碼)

一、狀態碼

5種狀態碼:

具有代表性的14個狀態碼:

2XX

請求被正常處理

  • 200 ok

       表示客戶端發來的請求在服務端被正常處理了

  • 204 no Content

       服務端請求處理成功,但是沒有資源返回(響應報文中不含實體的主體),當從瀏覽器發出請求處理後,返回204,那麼瀏覽器的頁面不發生跟新。

  • 206 partial Content

       客戶端進行了範圍請求,服務端成功執行了這部分的請求,響應報文中包含有Content-Range指定範圍的實體內容

3XX 重定向

表明瀏覽器需要執行某些特殊的處理以正確處理請求。

  • 301 moved Permanently

       請求的資源已被分配了新的URL,以後應使用資源現在所指的URL。

  • 302 Found

       臨時性重定向。該狀態碼錶示請求的資源已被分配了新的 URI,希望使用者(本次)能使用新的 URI 訪問 

  • 303 See Other

       該狀態碼錶示由於請求對應的資源存在著另一個 URI,應使用 GET方法定向獲取請求的資源。
       303 狀態碼和 302 Found 狀態碼有著相同的功能,但 303 狀態碼明確表示客戶端應當採用 GET 方法獲取資源,這點與302 狀態碼有區別

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

  • 304 Not Modified

        如果客戶端傳送了一個帶條件的GET 請求且該請求已被允許,而文件的內容(自上次訪問以來或者根據請求的條件)並沒有改變,則伺服器應當返回這個304狀態碼。簡單的表達就是:客戶端已經執行了GET,但檔案未變化。

       注: GET方法的請求報文中包含 If-Match,If-ModifiedSince,If-None-Match,If-Range,If-Unmodified-Since 中任一首部

  • 307 Temporary Redirect

       臨時重定向,同302.307會遵循瀏覽器的標準,不會講post請求變為get

4XX 客戶端錯誤

  • 400 Bad Request

       請求報文中存在語法錯誤,當錯誤發生時需要修改請求的內容再次傳送

  • 401 Unauthorized

       

       該狀態碼錶示傳送的請求需要有通過HTTP認證(BASIC 認證、DIGEST 認證)的認證資訊。另外若之前已進行過 1 次請求,則表示使用者認證失敗。

  • 403 Forbidden 

       請求資源的訪問被伺服器拒絕

  • 404 Not Found

       伺服器上無法找到請求資源

5XX伺服器錯誤

  • 500 Internal Server Error

       表示服務端在執行請求時傳送錯誤

  • 503 Service Unavailable

       伺服器超負荷或者處於停機維護中,如果事先得知解除以上狀況需要的時間,最好寫入RetryAfter 首部欄位再返回給客戶端。