HTTP 狀態碼查詢
搜尋並了解 HTTP 回應狀態碼、分類及實用處理建議。
常用狀態碼
共 58 個狀態碼
HTTP 狀態碼是什麼?
HTTP 狀態碼是伺服器隨每個回應傳回的三位數字,告訴用戶端這次請求成功了、被重導了,還是失敗了。第一位數字代表分類:1xx 資訊、2xx 成功、3xx 重導、4xx 用戶端錯誤、5xx 伺服器錯誤。
這份參考列出每個已註冊的狀態碼、官方名稱與適用情境,讓你在設計 API 時能挑到正確的碼,而不是一律回 200 或 500。
如何查詢狀態碼
- 在搜尋框輸入數字(429)或名稱裡的單字(timeout、gateway)。
- 已經知道錯誤分類時,用 1xx–5xx 篩選膠囊縮小清單。
- 點一列打開詳細面板,裡面說明伺服器該在什麼情況下回這個碼。
- 用複製按鈕帶走狀態碼,或打開 MDN 頁面看完整規格。
- 定案前先比較相鄰的狀態碼——401 對 403、301 對 307 是最常被搞混的兩組。
狀態碼範例
驗證與權限
GET /admin — no token sent
401 Unauthorized — 用戶端必須先通過驗證
流量限制
100 requests in one second
429 Too Many Requests — 加上 Retry-After,並放慢速度
常被搞混的狀態碼組合
| 面向 | 401 Unauthorized | 403 Forbidden |
|---|---|---|
| 意義 | 缺少或無效的憑證 | 已通過驗證但沒有權限 |
| 登入後可重試 | 可以,通常就能通過 | 不行,必須調整權限 |
| 常見原因 | 權杖過期 | 角色缺少對應授權 |
| WWW-Authenticate 標頭 | 應該要有 | 不強制 |
常見問題
HTTP 狀態碼常見問題
401 與 403 差在哪?
401 表示請求沒有有效憑證;403 表示呼叫方已通過驗證,但不被允許執行這個動作。
什麼時候該回 404 而不是 403?
當透露資源存在會洩漏資訊時就回 404——例如別的租戶的私人紀錄。
永久重導該用 301 還是 308?
301 在部分用戶端會把方法改成 GET;308 會保留方法與內容。非 GET 的端點請用 308。
查詢失敗回 200 可以嗎?
不行。請用 404 Not Found,讓用戶端與爬蟲能正確反應。
驗證失敗該回哪個狀態碼?
語法正確但語意不通過時用 422 Unprocessable Content;請求本身格式錯誤時用 400 Bad Request。
預期中的失敗可以用 500 嗎?
不行。5xx 代表需要處理的伺服器故障,用戶端造成的問題請用 4xx。