引言
????????HTTP 狀態碼是服務器對客戶端請求的標準化響應標識,屬于應用層協議的核心機制。其采用三位數字編碼,首位數字定義狀態類別,后兩位細化具體場景。
????????狀態碼不僅是服務端行為的聲明,更是客戶端處理響應的關鍵依據。本文將從協議規范出發,系統性解析常見狀態碼及其工程應用。
一、狀態碼分類標準
根據 RFC 9110 標準,HTTP 狀態碼按首位數字分為五類:

類別 | 定義 | 典型場景 |
---|---|---|
1xx | 信息性響應 | 請求已被接收,繼續處理 |
2xx | 成功操作 | 請求已被正確處理完 |
3xx | 重定向 | 需客戶端進一步操作 |
4xx | 客戶端錯誤 | 請求包含語法錯誤, |
5xx | 服務器錯誤 | 服務器處理請求失敗 |
看著挺多的是不是?不用慌!下面我們來用通俗的語言逐個講解,確保大家看完都難聽懂學會!
二、1xx 信息性狀態碼
1xx
?狀態碼表示請求已被接收,需繼續處理。此類狀態碼在實際開發中較為少見,這部分大家看看就行了,通常由服務器或代理自動處理,無需客戶端干預。常見狀態碼包括:
- 100 Continue:客戶端應繼續發送請求體。
- 101 Switching Protocols:服務器同意切換協議(如從 HTTP 升級到 WebSocket)。
二、2xx 成功類狀態碼
2xx 狀態碼表示請求已被服務器成功接收、理解并處理。
200 OK(最常見的)
定義:請請求成功,響應中包含請求的結果數據。
場景:
GET 請求獲取資源數據
POST 請求返回創建結果
示例:查詢用戶信息時,服務器返回用戶數據。
HTTP/1.1 200 OK Content-Type: application/json{"id": 2337504725, "name": "Xiaoliang"}
201 Created
定義:請求成功并在服務器創建了一個或多個新資源。
場景:
RESTful API 創建新資源
批量創建操作(返回多個資源地址)
技術細節:響應頭應包含 Location 字段指向新資源的 URI(如 /users/2337504725)。
示例:提交表單創建新用戶,服務器返回 201 及用戶 ID。
HTTP/1.1 201 Created Location: /api/users/2337504725
202 Accepted
定義:請求已接收但未完成處理,適用于異步任務。
場景:
大數據導出任務
耗時計算任務
實現細節:
需配合任務隊列機制
應返回任務狀態查詢接口
示例:觸發數據導出后,服務器返回 202 表示任務已排隊。
204 No Content
定義:成功執行但無實體返回,響應頭可能包含更新元數據。
場景:
DELETE 操作成功
表單提交無需刷新頁面
技術要求:
必須不包含消息體
客戶端不應改變當前文檔視圖
示例:刪除資源后,服務器返回 204 表示操作成功。
三、3xx 重定向狀態碼(常見且重要)
3xx
?狀態碼表示客戶端需采取進一步操作以完成請求。
301 Moved Permanently
- 定義:資源已被永久重定向到新 URI。
- 場景:網站域名變更或資源路徑永久調整。比如你經常看的某個網站的網址更換了。
- 技術細節:客戶端應緩存新 URI,后續請求直接訪問新地址。
302 Found
- 定義:資源臨時重定向到新 URI。
- 場景:短期的維護頁面跳轉或 A/B 測試。比如你經常訪問的網站的某些資源被暫時轉移到另外一個網址了。
- 技術細節:客戶端后續請求仍使用原 URI。
四、4xx 客戶端錯誤狀態碼
4xx
?狀態碼表示客戶端請求存在錯誤。
400 Bad Request
- 定義:請求語法或參數錯誤,服務器無法解析。
- 場景:表單字段格式錯誤、JSON 數據格式無效。
- 示例:提交的 JSON 缺少必填字段。
401 Unauthorized
- 定義:請求需要身份認證。
- 場景:未登錄用戶訪問需認證的 API。
- 技術細節:響應頭需包含?
WWW-Authenticate
?字段指明認證方式。
403 Forbidden
- 定義:服務器理解請求但拒絕執行。
- 場景:權限不足(如普通用戶訪問管理員接口)。
- 與 401 的區別:401 表示未認證,403 表示已認證但無權限。
404 Not Found(是不是很熟悉)
- 定義:請求資源在服務器里面不存在。相信大家都試過吧?嘿嘿
- 場景:訪問的 URL 路徑錯誤或資源已被刪除。
409 Conflict
- 定義:請求與服務器當前狀態沖突。
- 場景:資源版本沖突(如并發編輯)、重復創建唯一性資源。
- 示例:用戶注冊時郵箱已存在。
五、5xx 服務端錯誤狀態碼(重要)
5xx
?狀態碼表示服務器處理請求時發生錯誤。
500 Internal Server Error
- 定義:服務器內部錯誤,無法完成請求。
- 場景:代碼異常未捕獲、數據庫連接失敗。
- 排查方向:檢查服務器日志及錯誤堆棧。
502 Bad Gateway
- 定義:網關或代理服務器從上游服務器收到無效響應。
- 場景:反向代理后的服務崩潰或超時。
- 示例:Nginx 代理的后端服務無響應。
附:快速參考表
狀態碼 | 名稱 | 適用場景 |
---|---|---|
200 | OK | 標準成功響應 |
201 | Created | 資源創建成功 |
204 | No Content | 成功無返回體 |
301 | Moved Permanently | 永久重定向 |
302 | Found | 臨時重定向 |
400 | Bad Request | 客戶端請求錯誤 |
401 | Unauthorized | 需要身份認證 |
403 | Forbidden | 拒絕訪問 |
404 | Not Found | 資源不存在 |
500 | Internal Server Error | 服務器內部錯誤 |
502 | Bad Gateway | 網關代理服務器收到無效響應 |
503 | Service Unavailable | 服務不可用(臨時過載或維護) |