當我們從客戶端向服務器發送請求時
服務器向我們回傳狀態碼
狀態碼就是告訴我們服務器回應的狀態
通過它,我們就可以知道當前請求是成功了還是出現了什么問題
狀態碼是由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請求,資訊只存在于回應報文首部,因為它不會回傳報文物體,只回傳報文首部
204 No Content
表示請求已成功處理,但是沒有內容回傳(就應該沒有內容回傳的狀況)
也就是回傳的回應報文中沒有報文物體(其實是沒有報文物體的主體部分)
瀏覽器向服務器發送請求后收到了204,那么瀏覽器頁面不會發生更新
一般用在只是客戶端向服務器發送資訊,而服務器不用向客戶端回傳什么資訊的情況
206 Partial Content
表示服務器已經完成了部分GET請求(客戶端進行了范圍請求)
回應報文中包含Content-Range指定范圍的物體內容
3XX 重定向
301 Moved Permanently
永久重定向,表示請求的資源已經永久的搬到了其他位置
就是順澩已經被分配了新的URI
新的URI應該提示在回應報文的Location首部欄位
只要不是HEAD請求,回應物體應該包含新URI的超鏈接和簡短的說
302 Found
臨時重定向,表示請求的資源臨時搬到了其他位置
請求的資源暫時被配到到了新的URI
和301很像,只不過資源是臨時移動,資源在將來可能還會改變
同樣地,新的臨時URI應該提示在回應報文的Location首部欄位
只要不是HEAD請求,回應物體應該包含新URI的超鏈接和簡短的明
303 See Other
表示請求資源存在另一個URI,應使用GET定向獲取請求資源
303功能與302一樣,區別只是303明確客戶端應該使用GET訪問
(很多HTTP/1.1之前的瀏覽器不能理解303,但是大家都把302當303對待,使用GET請求新UI)
304 Not Modified
表示客戶端發送附帶條件的請求(GET方法請求報文中的IF…)時,條件不滿足
回傳304時,不包含任何回應主體
雖然304被劃分在3XX,但和重定向一毛錢都沒有
307 Temporary Redirect
臨時重定向,和302有著相同含義
盡管302標準禁止POST變為GET,但沒人聽他的
而307就會遵照標準,不會從POST變為GET
但處理回應行為,各個瀏器可能不同
4XX 客戶端錯誤
400 Bad Request
表示請求報文存在語法錯誤或引數錯誤,服務器不理解
服務器不應該重復提交這個請求
需要修改請容后再次發送
401 Unauthorized
表示發送的請求需要有HTTP認證資訊或者是認證失敗了
回傳401的回應必須包含一個適用于被請求資源的WWW-Authenticate首部以質詢用戶資訊
瀏覽器初次接受401,會彈出認證視窗
403 Forbidden
表示對請求資源的訪問被服務器拒絕了
服務器可以對此作出解釋,也可以不解釋
想說明的話可以在回應物體的主體部分描述原因
比如可能沒有訪問權限
404 Not Found
表示服務器找不到你請求的資源
也有可能服務器就是不想給你然后騙你找不到(⊙?⊙)
而且大多服務都是這么玩這個狀態碼的
5XX 服務器錯誤
500 Internal Server Error
表示服務器執行請求的時候出錯了
可能是Web應用有bug或臨時故障
更有可是服務器源代碼有bug…
503 Service Unavailable
表示服務器超負載或正停機維護,無法處理請求
如果服務器知道還需要多長時間,就寫入Ret
y-After首部欄位回傳總結
回傳的狀態碼和狀態不一致的情況是有可能發生得
比如Web應用程式內部錯誤,但仍然回傳
00 OK
200 OK
請求正常處理完畢204 No Content
請求成功處理,沒有物體的主體回傳206 Partial Content
GET范圍請求已成功處理301 Moved Permanently
永久重定向,資源已永久分配新URI302 Found
臨時重定向,資源已臨時分配新URI303 See Other
臨時重定向,期望使用GET定向獲取304 Not Modified
發送的附帶條件請求未滿足307 Temporary Redirect
臨時重定向,POST不會變成GET400 Bad Request
請求報文語法錯誤或引數錯誤401 Unauthorized
需要通過HTTP認證,或認證失敗403 Forbidden
請求資源被拒絕404 Not Found
無法找到請求資源(服務器無理由拒絕)500 Internal Server Error
服務器故障或Web應用故障503 Service Unavailable
服務器超負載或停機維護
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/67112.html
標籤:網絡通信
上一篇:VOIP的企業解決方案下載
下一篇:VOIP:IP語音技術下載
