天天看點

http常見狀态碼以及請求方式2XX 成功3XX 重定向4XX 用戶端錯誤5XX 伺服器錯誤總結

根據HTTP标準,HTTP請求可以使用多種請求方法。

HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法。

HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

序号 方法 描述
1 GET 請求指定的頁面資訊,并傳回實體主體。
2 HEAD 類似于get請求,隻不過傳回的響應中沒有具體的内容,用于擷取報頭
3 POST 向指定資源送出資料進行處理請求(例如送出表單或者上傳檔案)。資料被包含在請求體中。POST請求可能會導緻新的資源的建立和/或已有資源的修改。
4 PUT 從用戶端向伺服器傳送的資料取代指定的文檔的内容。
5 DELETE 請求伺服器删除指定的頁面。
6 CONNECT HTTP/1.1協定中預留給能夠将連接配接改為管道方式的代理伺服器。
7 OPTIONS 允許用戶端檢視伺服器的性能。
8 TRACE 回顯伺服器收到的請求,主要用于測試或診斷

當我們從用戶端向伺服器發送請求時 

伺服器向我們傳回狀态碼 

狀态碼就是告訴我們伺服器響應的狀态 

通過它,我們就可以知道目前請求是成功了還是出現了什麼問題 

狀态碼是由3位數字和原因短語組成的(比如最常見的:200 OK) 

其中第一位數字表示響應類别,響應類别從1到5分為五種 

add:其實我查閱資料發現還有一個6打頭的一個 600 Unparseable Response Headers 

表示伺服器沒有傳回響應頭部,隻傳回實體内容,也算做伺服器錯誤狀态碼吧,不過絕對不常見

狀态碼 響應類别 原因短語
1XX 資訊性狀态碼(Informational) 伺服器正在處理請求
2XX 成功狀态碼(Success) 請求已正常處理完畢
3XX 重定向狀态碼(Redirection) 需要進行額外操作以完成請求
4XX 用戶端錯誤狀态碼(Client Error) 用戶端原因導緻伺服器無法處理請求
5XX 伺服器錯誤狀态碼(Server Error) 伺服器原因導緻處理請求出錯

狀态碼響應類别的的定義是必須遵守的,後面的兩個數字伺服器自己DIY也沒什麼問題 

RFC2616(用來指定HTTP協定标準的文檔)标準定義的就有四十多種,加上擴充能達到六十種 

不過常見的大概隻有十四種,下面我來談談這些有代表性的14種HTTP狀态碼

2XX 成功

200 OK

表示請求被伺服器正常處理 

最常見的就是這個了 

随着這個狀态碼傳回的資訊跟你的請求方法有關 

比如GET請求,請求的資源會作為響應實體傳回 

而HEAD請求,資訊隻存在于響應封包首部,因為它不會傳回封包實體,隻傳回封包首部

http常見狀态碼以及請求方式2XX 成功3XX 重定向4XX 用戶端錯誤5XX 伺服器錯誤總結

204 No Content

表示請求已成功處理,但是沒有内容傳回(就應該沒有内容傳回的狀況) 

也就是傳回的響應封包中沒有封包實體(其實是沒有封包實體的主體部分) 

浏覽器向伺服器發送請求後收到了204,那麼浏覽器頁面不會發生更新 

一般用在隻是用戶端向伺服器發送資訊,而伺服器不用向用戶端傳回什麼資訊的情況

http常見狀态碼以及請求方式2XX 成功3XX 重定向4XX 用戶端錯誤5XX 伺服器錯誤總結

206 Partial Content

表示伺服器已經完成了部分GET請求(用戶端進行了範圍請求) 

響應封包中包含Content-Range指定範圍的實體内容

http常見狀态碼以及請求方式2XX 成功3XX 重定向4XX 用戶端錯誤5XX 伺服器錯誤總結

3XX 重定向

301 Moved Permanently

永久重定向,表示請求的資源已經永久的搬到了其他位置 

就是說資源已經被配置設定了新的URI 

新的URI應該提示在響應封包的Location首部字段 

隻要不是HEAD請求,響應實體應該包含新URI的超連結和簡短的說明

http常見狀态碼以及請求方式2XX 成功3XX 重定向4XX 用戶端錯誤5XX 伺服器錯誤總結

302 Found

臨時重定向,表示請求的資源臨時搬到了其他位置 

請求的資源暫時被配到到了新的URI 

和301很像,隻不過資源是臨時移動,資源在将來可能還會改變 

同樣地,新的臨時URI應該提示在響應封包的Location首部字段 

隻要不是HEAD請求,響應實體應該包含新URI的超連結和簡短的說明

http常見狀态碼以及請求方式2XX 成功3XX 重定向4XX 用戶端錯誤5XX 伺服器錯誤總結

303 See Other

表示請求資源存在另一個URI,應使用GET定向擷取請求資源 

303功能與302一樣,差別隻是303明确用戶端應該使用GET通路 

(很多HTTP/1.1之前的浏覽器不能了解303,但是大家都把302當303對待,使用GET請求新URI)

http常見狀态碼以及請求方式2XX 成功3XX 重定向4XX 用戶端錯誤5XX 伺服器錯誤總結

304 Not Modified

表示用戶端發送附帶條件的請求(GET方法請求封包中的IF…)時,條件不滿足 

傳回304時,不包含任何響應主體 

雖然304被劃分在3XX,但和重定向一毛錢關系都沒有

http常見狀态碼以及請求方式2XX 成功3XX 重定向4XX 用戶端錯誤5XX 伺服器錯誤總結

307 Temporary Redirect

臨時重定向,和302有着相同含義 

盡管302标準禁止POST變為GET,但沒人聽他的 

而307就會遵照标準,不會從POST變為GET 

但處理響應行為,各個浏覽器可能不同

http常見狀态碼以及請求方式2XX 成功3XX 重定向4XX 用戶端錯誤5XX 伺服器錯誤總結

4XX 用戶端錯誤

400 Bad Request

表示請求封包存在文法錯誤或參數錯誤,伺服器不了解 

伺服器不應該重複送出這個請求 

需要修改請求内容後再次發送

http常見狀态碼以及請求方式2XX 成功3XX 重定向4XX 用戶端錯誤5XX 伺服器錯誤總結

401 Unauthorized

表示發送的請求需要有HTTP認證資訊或者是認證失敗了 

傳回401的響應必須包含一個适用于被請求資源的WWW-Authenticate首部以質詢使用者資訊 

浏覽器初次接受401時,會彈出認證視窗

http常見狀态碼以及請求方式2XX 成功3XX 重定向4XX 用戶端錯誤5XX 伺服器錯誤總結

403 Forbidden

表示對請求資源的通路被伺服器拒絕了 

伺服器可以對此作出解釋,也可以不解釋 

想說明的話可以在響應實體的主體部分描述原因 

比如說你可能沒有通路權限

http常見狀态碼以及請求方式2XX 成功3XX 重定向4XX 用戶端錯誤5XX 伺服器錯誤總結

404 Not Found

表示伺服器找不到你請求的資源 

也有可能伺服器就是不想給你然後騙你找不到(⊙ˍ⊙) 

而且大多伺服器都是這麼玩這個狀态碼的

http常見狀态碼以及請求方式2XX 成功3XX 重定向4XX 用戶端錯誤5XX 伺服器錯誤總結

5XX 伺服器錯誤

500 Internal Server Error

表示伺服器執行請求的時候出錯了 

可能是Web應用有bug或臨時故障 

更有可能是伺服器源代碼有bug…

http常見狀态碼以及請求方式2XX 成功3XX 重定向4XX 用戶端錯誤5XX 伺服器錯誤總結

503 Service Unavailable

表示伺服器超負載或正停機維護,無法處理請求 

如果伺服器知道還需要多長時間,就寫入Retry-After首部字段傳回

http常見狀态碼以及請求方式2XX 成功3XX 重定向4XX 用戶端錯誤5XX 伺服器錯誤總結

總結

傳回的狀态碼和狀态不一緻的情況是有可能發生得 

比如Web應用程式内部錯誤,但仍然傳回 200 OK

  • 200 OK 

    請求正常處理完畢

  • 204 No Content 

    請求成功處理,沒有實體的主體傳回

  • 206 Partial Content 

    GET範圍請求已成功處理

  • 301 Moved Permanently 

    永久重定向,資源已永久配置設定新URI

  • 302 Found 

    臨時重定向,資源已臨時配置設定新URI

  • 303 See Other 

    臨時重定向,期望使用GET定向擷取

  • 304 Not Modified 

    發送的附帶條件請求未滿足

  • 307 Temporary Redirect 

    臨時重定向,POST不會變成GET

  • 400 Bad Request 

    請求封包文法錯誤或參數錯誤

  • 401 Unauthorized 

    需要通過HTTP認證,或認證失敗

  • 403 Forbidden 

    請求資源被拒絕

  • 404 Not Found 

    無法找到請求資源(伺服器無理由拒絕)

  • 500 Internal Server Error 

    伺服器故障或Web應用故障

  • 503 Service Unavailable 

    伺服器超負載或停機維護

原文位址 https://blog.csdn.net/q1056843325/article/details/53147180