當我們送出 HTTP Request,就會收到由伺服器傳回的 HTTP Response,但每個 Response 可能會被很多因素阻礙,導致無法正常的傳回客戶端,而狀態碼的存在就是為了清楚顯示每個 Response 處於什麼狀態。
像是我們常見到的 404,代表的就是目前這個頁面不存在
每個狀態碼大部分由三個數字所組成,從最左邊的數字就可以看出狀態碼是哪一類。狀態碼全部可分為下面五大類:
類型 | 意義 |
---|---|
1xx | 訊息 |
2xx | 成功 |
3xx | 重新導向 |
4xx | 客戶端錯誤 |
5xx | 伺服器錯誤 |
下面是每個分類的狀態碼:
1xx
- 100 繼續執行先前所發出的請求
- 101 切換通訊協定
2xx
- 200 客戶端請求成功
- 201 已建立
- 202 已接受
- 203 非授權資訊
- 204 沒有內容
- 205 重設內容
- 206 部分內容
- 207 傳回的訊息會是 XML 型態
- 208 響應已傳送
- 226 已完成響應
3xx
- 300 請求被收到了,但是需要重新定向
- 301 被請求的資源永久移動到新位置
- 302 臨時重新導向
- 303 當前請求的回應可以在另一個 URI 上被找到
- 304 已讀取過的圖片或網頁,由瀏覽器 Cache 中讀取
- 305 被請求的資源需要通過指定的代理才能被存取
- 307 請求與另一個 URI 重複,但後續的請求應仍使用原始的 URI
- 308 請求和所有將來的請求應該使用另一個 URI 重複
4xx
- 400 客戶端發生錯誤
- 401 沒有認證
- 403 伺服器已經理解請求,但是拒絕執行它
- 404 請求失敗
- 405 請求方法錯誤
- 406 請求的資源的內容特性無法滿足請求頭中的條件
- 407 要求 Proxy 認證
- 408 Request Timeout
- 409 因為請求存在衝突無法處理該請求
- 410 請求的資源不再可用
- 411 Header 需要定義訊息長度
5xx
- 500 執行錯誤
- 501 請求方法不支持
- 502 無效的閘道
- 503 服務無法使用
- 504 閘道逾時
- 505 HTTP 版本不支持
- 506 伺服器存在內部組態錯誤
- 507 伺服器無法儲存請求
- 508 無限迴圈
- 510 獲取資源策略無法被滿足
- 511 客戶端需要進行身分驗證