ToolAct工具行動

HTTP 狀態碼查詢

快速查詢 HTTP 狀態碼含義,包含所有標準狀態碼說明

全部: 62 个状态码

1xx 資訊(4)

100Continue

繼續。客戶端應繼續發送請求的剩餘部分。

101Switching Protocols

切換協議。伺服器已理解客戶端請求,並透過 Upgrade 標頭通知客戶端切換協議。

102Processing

處理中。伺服器已收到請求,正在處理,但尚未完成。

103Early Hints

早期提示。用於在最終回應之前返回一些頭資訊,幫助客戶端預載入資源。

2xx 成功(10)

200OK

成功。請求已成功處理,回應中包含請求的資料。

201Created

已建立。請求成功並建立了新的資源。通常用於 POST 請求。

202Accepted

已接受。請求已接受處理,但處理尚未完成。常用於異步處理。

203Non-Authoritative Information

非授權資訊。伺服器成功處理請求,但返回的資訊可能來自第三方。

204No Content

無內容。請求成功,但回應中不包含消息體。常用於 DELETE 請求。

205Reset Content

重置內容。請求成功,客戶端應重置文件視圖。

206Partial Content

部分內容。伺服器成功處理了部分 GET 請求,用於斷點續傳。

207Multi-Status

多狀態。多個狀態碼的回應(WebDAV)。

208Already Reported

已報告。DAV 綁定成員已在之前的多狀態回應中被列舉(WebDAV)。

226IM Used

已使用 IM。伺服器已完成 GET 請求,回應使用了實例操作。

3xx 重新導向(8)

300Multiple Choices

多種選擇。請求的資源有多個表示形式,客戶端需選擇。

301Moved Permanently

永久移動。請求的資源已永久移動到新位置,應使用新 URL。

302Found

臨時移動。請求的資源現在臨時從另一個 URL 回應。

303See Other

查看其他。應使用 GET 方法存取另一個 URL 獲取資源。

304Not Modified

未修改。資源未被修改,客戶端可使用緩存的版本。

305Use Proxy

使用代理(已廢棄)。應透過指定代理存取資源。

307Temporary Redirect

臨時重新導向。請求應使用相同方法和消息體重新導向到另一個 URL。

308Permanent Redirect

永久重新導向。請求應使用相同方法永久重新導向到另一個 URL。

4xx 客戶端錯誤(29)

400Bad Request

錯誤請求。伺服器無法理解請求的格式,客戶端應修改請求後重試。

401Unauthorized

未授權。請求需要使用者身份驗證。

402Payment Required

需要付費。保留供將來使用,常用於付費內容。

403Forbidden

禁止存取。伺服器理解請求,但拒絕執行。

404Not Found

未找到。請求的資源不存在,最常見的狀態碼。

405Method Not Allowed

方法不允許。請求方法不被支援,回應中會包含 Allow 頭。

406Not Acceptable

不可接受。伺服器無法根據客戶端請求的內容類型返回回應。

407Proxy Authentication Required

需要代理身份驗證。客戶端必須先向代理伺服器進行身份驗證。

408Request Timeout

請求超時。伺服器等待請求超時。

409Conflict

衝突。請求與伺服器當前狀態衝突,常用於 PUT 請求。

410Gone

已刪除。請求的資源已永久刪除,不會再恢復。

411Length Required

需要長度。請求必須包含 Content-Length 頭。

412Precondition Failed

前置條件失敗。請求頭中指定的條件不滿足。

413Payload Too Large

請求實體過大。請求體超過了伺服器願意處理的大小。

414URI Too Long

URI 過長。請求的 URL 過長,伺服器無法處理。

415Unsupported Media Type

不支援的媒體類型。請求體的格式伺服器不支援。

416Range Not Satisfiable

請求範圍不滿足。請求的範圍無效。

417Expectation Failed

期望失敗。伺服器無法滿足請求頭 Expect 欄位的期望。

418I'm a teapot

我是茶壺。RFC 2324 的彩蛋代碼,表示伺服器拒絕煮咖啡。

421Misdirected Request

誤導的請求。請求發送到了無法生成回應的伺服器。

422Unprocessable Entity

無法處理的實體。請求格式正確,但語義錯誤無法處理。

423Locked

已鎖定。請求的資源已被鎖定(WebDAV)。

424Failed Dependency

依賴失敗。請求失敗是因為之前的請求失敗(WebDAV)。

425Too Early

太早。伺服器不願處理可能被重放的請求。

426Upgrade Required

需要升級。客戶端應切換到 TLS 協議。

428Precondition Required

需要前置條件。請求需要有條件頭(如 If-Match)。

429Too Many Requests

請求過多。使用者發送請求過於頻繁,應限制速率。

431Request Header Fields Too Large

請求頭欄位過大。請求頭太大,伺服器無法處理。

451Unavailable For Legal Reasons

因法律原因不可用。該資源因法律原因無法提供。

5xx 伺服器錯誤(11)

500Internal Server Error

伺服器內部錯誤。伺服器遇到意外情況,無法完成請求。

501Not Implemented

未實現。伺服器不支援請求所需的功能。

502Bad Gateway

錯誤網關。伺服器作為網關或代理時,從上游收到無效回應。

503Service Unavailable

服務不可用。伺服器暫時無法處理請求,可能因過載或維護。

504Gateway Timeout

網關超時。伺服器作為網關或代理時,等待上游回應超時。

505HTTP Version Not Supported

HTTP 版本不支援。伺服器不支援請求使用的 HTTP 版本。

506Variant Also Negotiates

變體也需協商。伺服器配置有誤,導致內容協商進入循環。

507Insufficient Storage

儲存空間不足。伺服器無法儲存完成請求所需的資源(WebDAV)。

508Loop Detected

檢測到循環。伺服器在處理請求時檢測到無限循環(WebDAV)。

510Not Extended

未擴展。需要進一步擴展請求才能處理。

511Network Authentication Required

需要網路認證。需要進行網路認證才能繼續(如熱點登錄)。

什麼是 HTTP 狀態碼?

HTTP 狀態碼工具用來說明伺服器在收到瀏覽器、搜尋爬蟲、應用程式或 API 使用者端請求後回傳的回應代碼。2xx 通常代表成功,3xx 代表重新導向,4xx 多半是使用者端請求問題,5xx 則指向伺服器端錯誤,但每個代碼的差異很重要。401 和 403 不相同,404 和 410 對資源狀態的含義不同,301 與 302 對 SEO 和快取也有不同影響。它適合開發除錯、介面串接、網站排障與支援回覆時快速查閱。

如何使用

快速參考

  1. 點選任何狀態碼卡即可複製
  2. 使用搜尋框快速查找特定狀態碼
  3. 點選分類標籤依狀態類型篩選
  4. 將滑鼠懸停於狀態碼上可查看詳細說明

調試注意事項

  • 先看狀態類別:2xx 成功、3xx 重新導向、4xx 使用者端錯誤、5xx 伺服器端錯誤。
  • 除錯 API 時,請將狀態碼與回應內容、標頭、請求方法及伺服器紀錄一併查看;單靠狀態碼通常無法釐清完整問題。

使用場景

除錯 API 時查詢狀態碼透過數字、名稱或描述搜尋,並依資訊、成功、重新導向、使用者端錯誤或伺服器錯誤分類篩選,無需開啟另一份參考文件即可理解回應。每張狀態碼卡片包含 IETF 家族歸屬和簡短描述,通常足以在開啟更深入的參考資料前選擇下一步除錯動作。
將狀態碼複製到工單和客服回覆中撰寫錯誤報告、日誌說明、客戶解釋、閘道規則或監控註解時,點選狀態碼卡片即可複製數字代碼。同時複製簡短說明,讓工單保留完整的 HTTP 上下文。
區分使用者端和伺服器端故障類別使用分組版面區分 4xx 請求問題與 5xx 後端問題,以及 3xx 重新導向行為與成功的 2xx 回應。這有助於在進行更深入的日誌分析之前,將事件分派給正確的負責人。
引用前先對照 IETF RFC 定義開啟有疑問的狀態碼詳細卡片,確認 IETF RFC 措辭是否與你的理解一致,特別是 401 vs. 403、404 vs. 410、301 vs. 308 等容易混淆的配對。同樣的謹慎也值得套用到較新的狀態碼,如 425 Too Early、451 Unavailable For Legal Reasons 或 421 Misdirected Request,它們在 HTTP/2 和 HTTP/3 堆疊中的行為與較舊的 4xx 和 3xx 經典代碼不同。需注意 RFC 9110(現行 HTTP 語意註冊表)已棄用 305 Use Proxy 和 306,將 418 歸為玩笑類別,並重新組織了 1xx,使得 100 Continue 和 101 Switching Protocols 是瀏覽器或代理必須實作的僅有兩個;102、103 及 WebDAV 擴充為選用,且很少被 CDN 邊緣節點呈現。
審查監控儀表板時使用分組列表向隊友解釋尖峰流量、選擇告警閾值或決定哪些回應類別值得獨立的 runbook 條目時,在同一視圖中瀏覽重新導向、使用者端錯誤和伺服器錯誤分組。當出現 429 尖峰時,請單獨擷取 Retry-After 標頭值,而非將所有 4xx 一視同仁,因為 Retry-After 是伺服器給客戶端的約定,也是區分禮貌的限流回應與異常行為的唯一欄位。

技術原理

HTTP 狀態碼是在回應起始行返回的三位數整數,由 HTTP 語意規範定義。現行規範性參考為 RFC 9110(HTTP 語意,2022 年 6 月),它取代了早期的 RFC 7231 系列,另有 RFC 9111(快取)、RFC 9112(HTTP/1.1)、RFC 9113(HTTP/2)和 RFC 9114(HTTP/3)的擴充。第一位數定義回應類別,因此即使無法識別的代碼也有可預期的處理方式:1xx 資訊性(臨時,最終回應隨後送達)、2xx 成功、3xx 重新導向(需要使用者代理進一步操作)、4xx 使用者端錯誤(請求格式錯誤或無法滿足)、5xx 伺服器錯誤。快取和中介者必須將未知代碼視為通用類別代碼 x00(例如未知的 4xx 按 400 處理),這就是即使對於私有或擴充代碼,狀態系列仍然有意義的原因。 重新導向代碼帶有方法保留語意,歷史上與設計意圖有分歧。RFC 9110 §15.4 明確了區分:301 Moved Permanently 和 302 Found 可能將 POST 改寫為 GET(所有瀏覽器在 1990 年代末達成的事實行為,在 RFC 7231 中正式規範);307 Temporary Redirect 和 308 Permanent Redirect 要求使用者代理重複相同的方法和請求體。SEO 工具通常在 301 和 308 上轉移 PageRank 等效權重,並將 302/307 視為保留原始 URL 的訊號。條件式代碼 304 Not Modified 和 412 Precondition Failed 取決於請求的 If-None-Match / If-Modified-Since / ETag / Last-Modified 標頭,206 Partial Content 回應 Range 標頭,返回 Content-Range 標頭及在請求多個範圍時使用 multipart/byteranges 主體。 4xx 和 5xx 類別在標頭中攜帶契約細節。401 Unauthorized 必須包含 WWW-Authenticate 質詢,列出接受的驗證方案(Bearer、Basic、Digest、Negotiate);缺少此標頭的回應在技術上是格式錯誤的。405 Method Not Allowed 必須包含 Allow 標頭,列出支援的方法。429 Too Many Requests、503 Service Unavailable 以及帶有 Retry-After 的 301/307/308 讓伺服器以秒數(Retry-After: 120)或 HTTP 日期(Retry-After: Wed, 21 Oct 2025 07:28:00 GMT)訊號傳達延遲,依 RFC 9110 §10.2.3。RFC 9110 棄用 305 Use Proxy 和 306(保留/未使用),保留 418 I'm a teapot 作為 RFC 2324 / RFC 7168 記錄的玩笑代碼,並重新組織 1xx,使得 100 Continue 和 101 Switching Protocols 是 HTTP/1.1 層級唯一需要實作的;102 Processing 和 103 Early Hints(RFC 8297)為選用擴充,主要透過 CDN 邊緣邏輯呈現。

  • 規範性參考:RFC 9110(HTTP 語意,2022 年 6 月)取代 RFC 7230-7235;擴充位於 RFC 9111(快取)、9112(HTTP/1.1 線路格式)、9113(HTTP/2)、9114(HTTP/3)。
  • 未知代碼降級為類別代碼(x00):未知的 4xx 按 400 快取和呈現,未知的 5xx 按 500 處理——這就是第一位數作為契約的意義。
  • 方法保留:301/302 歷史上允許 POST → GET 改寫(在 1990 年代初期瀏覽器分歧後正式規範);307/308 要求重放相同的方法和請求體——永久 API 端點遷移請使用 308。
  • 401 Unauthorized 必須攜帶 WWW-Authenticate;405 Method Not Allowed 必須攜帶 Allow;缺少這些標頭是違反規範的行為,會破壞正常運作的 HTTP 使用者端。
  • Retry-After(RFC 9110 §10.2.3)用於 429/503/301/307/308:接受增量秒數(Retry-After: 120)或 HTTP 日期(Retry-After: Wed, 21 Oct 2025 07:28:00 GMT)——使用者端應解析兩種形式。
  • 條件式快取:304 Not Modified 回應 If-None-Match / If-Modified-Since 匹配,無主體;206 Partial Content 回應 Range,帶有 Content-Range 和部分主體或 multipart/byteranges 文件。
  • RFC 9110 棄用 305 Use Proxy 和 306(保留),保留 RFC 2324 / RFC 7168 的玩笑代碼 418 I'm a teapot,並將 102 Processing / 103 Early Hints(RFC 8297)視為選用的 1xx 擴充,許多代理會將其移除。

範例

2xx 成功 — 200 OK 與 204 No Content

200 OK            GET /api/users -> 回傳回應主體
201 Created       POST /api/posts -> 新資源位置在 Location 標頭
204 No Content    DELETE /api/posts/42 -> 成功,主體為空
206 Partial       影片串流或可續傳下載的 Range 請求

RFC: RFC 7231 第 6.3 節定義 2xx 成功狀態碼

3xx 重新導向 — 301 vs 302 vs 304

301 Moved Permanently  -> SEO 安全,瀏覽器永久快取新 URL
302 Found              -> 暫時導向,目標不應快取
304 Not Modified       -> 快取副本仍有效(ETag/Last-Modified 比對相符)
307 Temporary Redirect -> 類似 302,但請求方法不可變動(POST 仍為 POST)
308 Permanent Redirect -> 類似 301,但保留請求方法

RFC: RFC 7231 第 6.4 節定義 3xx 重新導向狀態碼
RFC: RFC 7232 第 4.1 節定義 304 Not Modified 語意

4xx 使用者端錯誤 — 認證 vs 權限

400 Bad Request    格式錯誤的 JSON、缺少必填欄位
401 Unauthorized   缺少或無效的 token — 呼叫端必須先認證
403 Forbidden      已認證但無權存取此資源
404 Not Found      資源不存在(或基於安全考量假裝不存在)
409 Conflict       重複鍵、樂觀鎖版本不符
429 Too Many Reqs  觸發速率限制 — 參見 Retry-After 標頭

RFC: RFC 7231 第 6.5 節定義 4xx 使用者端錯誤狀態碼
RFC: RFC 6585 第 4 節定義 429 Too Many Requests

5xx 伺服器錯誤 — 偵錯上游服務

500 Internal Server Error  應用程式碼未處理的例外 — 請查看日誌
502 Bad Gateway            Nginx/上游服務從後端收到無效回應
503 Service Unavailable    維護中、過載,或應用程式正在啟動
504 Gateway Timeout        上游服務未在代理逾時前回應

RFC: RFC 7231 第 6.6 節定義 5xx 伺服器錯誤狀態碼
快速判斷:5xx 是我們的問題,4xx 是呼叫端的問題

顯示多種狀態碼的實際 curl 連線

$ curl -I https://example.com/old-page
HTTP/2 301
location: https://example.com/new-page

$ curl -I https://example.com/admin
HTTP/2 401
www-authenticate: Bearer realm="api"

$ curl -X POST https://example.com/api/posts -d '{}'
HTTP/2 422
content-type: application/json

說明:422 Unprocessable Entity 是 WebDAV 擴充(RFC 4918),用於驗證錯誤

常見問題

1xx、2xx、3xx、4xx、5xx 各代表什麼?

1xx 為資訊性回應(實務上少見)。2xx 表示請求成功。3xx 是重新導向——使用者端應改連到另一個 URL。4xx 是使用者端問題(請求錯誤、缺少驗證、找不到資源)。5xx 是伺服器端問題(請求看似正確但伺服器處理失敗)。看 log 時請先看類別。

301 與 302 有什麼差別?

301 Moved Permanently 告訴使用者端與搜尋引擎資源已永久搬遷——瀏覽器會積極快取此重新導向,SEO 連結權重也會轉移到新網址。302 Found 是暫時重新導向,使用者端不應長期快取。若你必須保留請求方法,永久重新導向請用 308,暫時重新導向請用 307。

什麼時候該回傳 401,什麼時候該回傳 403?

401 Unauthorized 表示使用者端尚未驗證或所提供的憑證無效——回應應包含 WWW-Authenticate 標頭。403 Forbidden 則表示伺服器知道使用者是誰,但拒絕提供此資源。登入可解決 401;登入解決不了 403。

資源不再存在時應使用 404 還是 410?

404 Not Found 意指「我找不到,可能在別處或之後會回來」。410 Gone 意指「這個資源曾在這裡,已被刻意移除,不要再來找」。搜尋引擎會比 404 更快地把 410 從索引中移除,因此對於確定下架且不希望被再次抓取的頁面,410 才是正確選擇。

除錯 API 時應該怎麼解讀狀態碼?

先看類別(4xx 與 5xx 告訴你是哪一邊的問題),再看具體代碼,最後看回應主體。主體通常會帶實際錯誤訊息與內部錯誤碼;HTTP 狀態只是分類。也別忘了檢查 Retry-After、WWW-Authenticate、Location 等標頭。

非 2xx 的狀態碼會傷害 SEO 嗎?

有些會、有些不會。長時間的 5xx 回應會讓搜尋引擎覺得網站不可靠,最終降低抓取頻率。301/308 會傳遞連結權重,302/307 不會。410 能加速從索引移除,404 則會留存較久。傳回 200 的軟性 404(找不到頁面卻回 200)對 SEO 比真正的 404 更糟,因為它會讓索引塞滿空頁面。

418、451 等不常見的狀態碼是做什麼用的?

418「我是茶壺」是 RFC 2324 的著名愚人節代碼——正式服務絕不該回傳。451 Unavailable For Legal Reasons 表示資源因法律要求而被封鎖(名字源自雷·布萊伯利的《華氏 451 度》)。429 Too Many Requests 表示流量限制,應搭配 Retry-After 標頭。503 Service Unavailable 才是規畫性維護時應使用的代碼。