文章目錄
- 一、2xx 成功
- 1、200 OK
- 2、204 No Content
- 3、206 Partial Content
- 二、3xx 重定向
- 1、301 Moved Permanently
- 2、302 Found
- 3、303 See Other
- 注意
- 4、Not Modified
- 5、307 Temporary Redirect
- 三、4xx 客戶端錯誤
- 1、400 Bad Request
- 2、401 Unauthorized
- 3、403 Forbidden
- 4、404 Not Found
- 四、5xx 服務器錯誤
- 1、500 Internal Server Error
- 2、503 Service Unavailable
一、2xx 成功
1、200 OK
從客戶端發來的請求在服務器端被正常處理了
在響應報文內,隨狀態碼一起返回的信息會因方法的不同而發生改變,比如,使用 GET 方法時,對應請求資源的實體會作為響應返回,而使用 HEAD 方法時,在響應中只返回首部,不會返回主體部分
2、204 No Content
請求已成功處理,但在返回的響應報文中不含主體部分,一般在只需要從客戶端往服務器發送信息,而對客戶端不需要發送新信息內容的情況下使用,比如,當從瀏覽器發出請求處理后,返回 204 響應,那么瀏覽器顯示的頁面不發生更新
3、206 Partial Content
客戶端進行了范圍請求,而服務器成功執行了這部分的 GET 請求,響應報文中包含由 Content-Range 首部指定范圍的實體內容
二、3xx 重定向
1、301 Moved Permanently
永久性重定向,如果把資源對應的 URL 保存為書簽了,這時應該按 Location 首部提示的 URL 重新保存
2、302 Found
臨時性重定向,該狀態碼表示請求的資源已被分配了新的 URL(已移動的資源對應的 URL 將來還有可能發生改變),希望用戶(本次)能使用新的 URL 訪問
3、303 See Other
和 302 有著相同的功能,但 303 明確表示客戶端應當采用 GET 方法獲取資源,這點與 302 有區別,比如,當使用 POST 方法訪問 CGI 程序,其執行后的處理結果是希望客戶端能以 GET 方法重定向到另一個 URL 上去時,返回 303
注意
301、302 標準是禁止將 POST 方法改變成 GET 方法的,但當 301、302、303 返回時,幾乎所有的瀏覽器都會把 POST 改成 GET,并刪除請求報文內的主體,之后請求會自動再次發送
4、Not Modified
客戶端發送附帶條件的請求(附帶條件的請求是指采用 GET 方法的請求報文中包含 If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since 中任一首部)時,服務器端允許請求訪問資源,但未滿足條件的情況
304 返回時,不包含任何響應的主體部分,304 雖然被劃分在 3xx 類別中,但是和重定向沒有關系
5、307 Temporary Redirect
臨時重定向,與 302 有著相同的含義,盡管 302 標準禁止 POST 方法變換成 GET 方法,但實際使用時打擊并不遵守
307 會遵守瀏覽器標準,不會從 POST 方法變成 GET 方法,但是,對于處理響應時的行為,每種瀏覽器有可能出現不同的情況
三、4xx 客戶端錯誤
1、400 Bad Request
請求報文中存在語法錯誤,當錯誤發生時,需修改請求的內容后再次發送請求,另外,瀏覽器會像 200 一樣對待 400
2、401 Unauthorized
發送的請求需要有通過 HTTP 認證(BASIC 認證、DIGEST 認證)的認證信息,如果之前已進行過 1 次請求,則表示用戶認證失敗
返回含有 401 的響應必須包含一個適用于被請求資源的 WWW-Authenticate 首部用以質詢用戶信息,當瀏覽器初次接收到 401 響應,會彈出認證用的對話窗口
3、403 Forbidden
請求被拒絕,服務器端沒有必要給出拒絕的詳細理由,但如果想作說明的話,可以在主體部分對原因進行描述,這樣就能讓用戶看到了
未獲得文件系統的授權,訪問權限出現某些問題(從未授權的發送源 IP 地址試圖訪問)等列舉的情況都可能是發生 403 的原因
4、404 Not Found
服務器上無法找到請求的資源,除此之外,也可以在服務器端拒絕請求且不想說明理由時使用
四、5xx 服務器錯誤
1、500 Internal Server Error
服務器端在執行請求時發生了錯誤,也有可能是 Web 應用存在的 bug 或某些臨時的故障
2、503 Service Unavailable
服務器暫時處于超負載或正在進行停機維護,現在無法處理請求,如果事先得知解除以上狀況需要的時間,最好寫入 Retry-After 首部再返回給客戶端