對於我們前端的小夥伴們,能夠多瞭解一下狀態碼的規範,還是對處理一些介面問題,有很大幫助的。
有沒有看到我的標題是1xx、2xx、5xx並沒有3xx、4xx,因為我在之前的文章中寫過,如果想看的話,可以點選這裡《3xx響應狀態碼的解釋》《4xx響應狀態碼的解釋》
響應狀態碼可以描述請求的處理結果,響應狀態碼以3位數字和狀態短語組成。
有關響應狀態碼的格式也是有一定規律的,數字的第一位指定了響應類別,後兩位無分類。響應類別有以下5種
類別 原因短語
1XX Informational(資訊性狀態碼) 接收的請求正在處理
2XX Success(成功狀態碼) 請求正常處理完畢
3XX Redirection(重定向狀態碼) 需要進⾏附加操作以完成請求
4XX Client Error(客戶端錯誤狀態碼) 伺服器無法處理請求
5XX Server Error(伺服器錯誤狀態碼) 伺服器處理請求出錯
1、1xx 伺服器接收到請求了,但是還沒有做出響應實體
常見的 100
舉個簡單的例子,我們都在淘寶或者京東上買過商品,我們付完錢了,卻沒有發貨,這個訂單的狀態告訴我們們在發貨,這個狀態和伺服器狀態碼 100很像。
2、2xx 成功
2.1、200
舉個簡單的例子,我們都在淘寶或者京東上買過商品,我們付完錢了,我們們買的商品也通過快遞運輸到我們們的身旁了。這樣訂單的狀態和伺服器響應200很像
2.2 204 no Content
舉個簡單的例子,在我們上大學的手,有些女同學想掙個外快,就進行淘寶或者京東的刷單掙錢,哈哈,刷單一般就是我們們通過淘寶或者京東向商家墊付一下金額,商家會給我們們傳送一個空的包裹。商家和客戶之間的這樣操作,很像伺服器和客戶端的204響應。
2.3 206 Partial Content
做過大檔案下載或者視訊下載的同學應該知道這個狀態碼,關於206狀態碼會和請求首部欄位、響應首部欄位有關係,看下圖
步驟1:客戶端實現斷點請求或者範圍請求時會遇到這類狀態碼,比如我有一個視訊昨天下載一半,由於某種原因我斷開下載了,今天我又要下載這個視訊,那麼請求首部欄位就會新增If-range:‘345345’;range:bytes=‘50001-10000’給伺服器。
步驟2 ;伺服器會拿if-match和資源的ETag比較是否一致,如果一致就接著返回部分資源以及狀態碼206,如果不一致就返回412,瀏覽器接著請求。
3、 5xx 伺服器錯誤
3.1 500 Internal Server Error
客戶端請求伺服器的時候,伺服器返回狀態碼500,有兩種錯誤的可能,一、是伺服器端執行時遇見錯誤,二、也有可能是web應用存在bug或者臨時故障
3.2 503 Service Unavailable 無法提供服務
客戶端請求伺服器時,伺服器發現自己還有很多沒有處理完成的使用,超負荷的在工作,就會給客戶端說:‘你先等會吧,等我5分鐘以後把這些業務處理玩再來找我’,這就是我們常見的503 響應狀態碼,並且會在響應首部欄位返回retry-after:時間