HTTP 響應狀態碼(Response Status Codes)?
HTTP 響應狀態碼用于表示服務器對客戶端請求的處理結果,由3位數字 組成,分為5類:
狀態碼 | 類別 | 常見狀態碼 | 說明 |
1xx | 信息響應 | 100(Continue) | 服務器已接收請求,客戶端應繼續發送 |
2xx | 成功響應 | 200(OK) | 請求成功,返回數據 |
201(Created) | 資源創建成功(如POST請求) | ||
204(No Content) | 請求成功,但無返回內容 | ||
3xx | 重定向 | 301(Moved Permanently) | 資源永久重定向 |
302(Found) | 資源臨時重定向 | ||
304(Not Modified) | 資源未修改(緩存有效) | ||
4xx | 客戶端錯誤 | 400(Bad Request) | 請求語法錯誤 |
401(Unauthorized) | 未授權(需登錄) | ||
403(Forbidden) | 服務器拒絕訪問 | ||
404(Not Found) | 資源不存在 | ||
5xx | 服務器錯誤 | 500(Internal Server Error) | 服務器內部錯誤 |
502(Bad Gateway) | 網關/代理服務器錯誤 | ||
503(Service Unavailable) | 服務器暫時不可用 |
詳解
1xx 信息響應(Informational)
特點:臨時響應,表示請求已被接收,繼續處理。
常見于:客戶端和服務器間需要一些交互確認的場景。
-
100 Continue
說明:客戶端應繼續發送請求的剩余部分。
場景:一般用于大文件上傳時,客戶端先發送請求頭,服務器響應 100 后,客戶端再發送主體內容。 -
101 Switching Protocols
說明:服務器同意客戶端請求,切換協議(比如從HTTP切到WebSocket)。
2xx 成功響應(Successful)
特點:表示請求已被成功接收、理解、并接受。
-
200 OK
說明:請求成功,服務器返回所請求的數據。
場景:最常見的狀態碼,GET、POST、PUT 等請求成功后都會返回。 -
201 Created
說明:請求成功并且服務器創建了新的資源。
場景:常用于POST請求(如注冊用戶、添加數據)。 -
204 No Content
說明:請求成功,但沒有返回任何內容。
場景:常用于DELETE請求,或PUT請求后不需要返回內容的情況。
3xx 重定向(Redirection)
特點:需要客戶端采取進一步操作(如訪問新地址)。
-
301 Moved Permanently
說明:請求資源已被永久移動到新位置。
場景:域名遷移、永久網址變更。瀏覽器會自動跳轉。 -
302 Found
說明:請求資源臨時移動。
場景:臨時跳轉,常見于登錄后跳回原頁面。 -
304 Not Modified
說明:資源未被修改,可以使用緩存。
場景:客戶端帶If-Modified-Since頭請求,服務器發現資源沒變就返回304,客戶端直接用本地緩存。
4xx 客戶端錯誤(Client Error)
特點:請求有錯誤,客戶端需修改請求后重試。
-
400 Bad Request
說明:請求語法錯誤,服務器無法理解。
場景:參數缺失、格式錯誤等。 -
401 Unauthorized
說明:未授權,需要登錄。
場景:訪問需要認證的接口沒帶token或登錄信息。 -
403 Forbidden
說明:服務器理解請求,但拒絕執行。
場景:權限不足、IP被屏蔽等。 -
404 Not Found
說明:請求的資源不存在。
場景:URL地址寫錯、接口下線等。
5xx 服務器錯誤(Server Error)
特點:服務器處理請求時出錯,屬于服務器端問題。
-
500 Internal Server Error
說明:服務器內部錯誤,無法完成請求。
場景:代碼異常、配置錯誤。 -
502 Bad Gateway
說明:服務器作為網關或代理時,從上游服務器收到無效響應。
場景:反向代理、負載均衡等場合后端掛了。 -
503 Service Unavailable
說明:服務器暫時無法處理請求。
場景:服務器維護、過載、短時間故障。
常見開發與調試建議
- 2xx:一切正常,可以放心處理返回數據。
- 3xx:注意跳轉地址,避免死循環重定向。
- 4xx:檢查接口文檔和請求參數,尤其是 400/401/403/404。
- 5xx:聯系后端排查服務器錯誤。
狀態碼擴展舉例
- 405 Method Not Allowed:請求方法(如POST、GET)不被允許。
- 408 Request Timeout:請求超時。
- 429 Too Many Requests:請求過多,被限流。
- 504 Gateway Timeout:網關超時。