tigtools

HTTP 狀態碼

查詢任何 HTTP 狀態碼:了解其含義、伺服器在何時傳送,以及由哪份規格定義。依數字或關鍵字搜尋、依類別篩選,並直接連結至特定代碼。

在瀏覽器中執行 免註冊

顯示 79 個狀態碼

  • 100 Continue

    伺服器已收到請求標頭,用戶端可以傳送本文。用戶端在上傳大型本文前傳送「Expect: 100-continue」時會出現此代碼。

    定義於 RFC 9110

  • 101 Switching Protocols

    伺服器同意切換至用戶端在 Upgrade 標頭中要求的通訊協定。連線升級為 WebSocket 時會出現此代碼。

    定義於 RFC 9110

  • 102 Processing

    已淘汰或未使用

    伺服器已接受 WebDAV 請求,但尚未處理完成。後續的 WebDAV 規格已移除此代碼,現今很少使用。

    定義於 RFC 2518

  • 103 Early Hints

    在最終回應前傳送,讓瀏覽器可以預先載入 Link 標頭中列出的資源。CDN 和伺服器會使用此代碼加快頁面載入速度。

    定義於 RFC 8297

  • 200 OK

    請求成功,回應中包含結果。這是載入頁面或 API 呼叫成功時的標準回應。

    定義於 RFC 9110

  • 201 Created

    請求成功並建立了新資源,通常會由 Location 標頭識別。成功 POST 並建立記錄後,常會收到此回應。

    定義於 RFC 9110

  • 202 Accepted

    請求已獲接受並排入處理,但尚未完成。會用於排入工作的 API,例如匯出或批次工作。

    定義於 RFC 9110

  • 203 Non-Authoritative Information

    請求成功,但轉換代理伺服器修改了來源伺服器傳回的內容。

    定義於 RFC 9110

  • 204 No Content

    請求成功,沒有內容需要回傳。常用於 DELETE 請求,以及用戶端不需要回應本文的資料儲存操作。

    定義於 RFC 9110

  • 205 Reset Content

    請求成功,用戶端應重設文件檢視,例如清除表單。很少使用。

    定義於 RFC 9110

  • 206 Partial Content

    伺服器只回傳用戶端要求的位元組範圍。串流播放影片、續傳下載,或用戶端傳送 Range 標頭時會出現此代碼。

    定義於 RFC 9110

  • 207 Multi-Status

    WebDAV 回應,XML 本文中包含多個資源各自的狀態碼。

    定義於 RFC 4918

  • 208 Already Reported

    用於 WebDAV 207 回應中,避免再次列出相同的繫結資源成員。

    定義於 RFC 5842

  • 226 IM Used

    伺服器對目前資源套用了執行個體操作(例如差異編碼)。極少見。

    定義於 RFC 3229

  • 300 Multiple Choices

    此資源有多種表示方式,用戶端應選擇其中一種。實際上很少使用。

    定義於 RFC 9110

  • 301 Moved Permanently

    資源已永久移至 Location 標頭中的 URL。瀏覽器和搜尋引擎會更新連結;部分用戶端在跟隨重新導向時會將 POST 改為 GET。

    定義於 RFC 9110

  • 302 Found

    資源暫時位於 Location 標頭指定的另一個 URL。常用於登入後或短期重新導向;瀏覽器通常會以 GET 跟隨重新導向。

    定義於 RFC 9110

  • 303 See Other

    用戶端應使用 GET 從另一個 URL 取得結果。表單 POST 後重新導向至確認頁面時會使用此代碼(Post/Redirect/Get 模式)。

    定義於 RFC 9110

  • 304 Not Modified

    快取的副本仍有效,因此伺服器不會傳送本文。瀏覽器使用 If-None-Match 或 If-Modified-Since 重新驗證快取檔案時會出現此代碼。

    定義於 RFC 9110

  • 305 Use Proxy

    已淘汰或未使用

    要求用戶端使用 Location 標頭指定的代理伺服器。基於安全性考量,此代碼已棄用,瀏覽器會忽略它。

    定義於 RFC 9110

  • 306 (Unused)

    已淘汰或未使用

    已保留。此狀態碼曾用於 HTTP/1.1 的早期草案,現已不再使用。

    定義於 RFC 9110

  • 307 Temporary Redirect

    資源暫時位於另一個 URL,客戶端必須使用相同的方法和本文重新發送請求。瀏覽器也會用於內部 HSTS 導向 HTTPS。

    定義於 RFC 9110

  • 308 Permanent Redirect

    資源已永久移至新的 URL,客戶端必須使用相同的方法和本文發送請求。這是 307 的永久版本,可安全地重新導向 POST 請求。

    定義於 RFC 9110

  • 400 Bad Request

    伺服器無法處理格式錯誤的請求,例如無效的 JSON、錯誤的查詢參數或損毀的 Cookie。

    定義於 RFC 9110

  • 401 Unauthorized

    請求缺少有效的驗證憑證。雖然名稱如此,實際上代表「未驗證」;伺服器會傳送 WWW-Authenticate 標頭,說明如何登入。

    定義於 RFC 9110

  • 402 Payment Required

    此狀態碼在 HTTP 規格中保留供未來使用。有些 API 和付款服務會在需要付款或訂閱時使用。

    定義於 RFC 9110

  • 403 Forbidden

    伺服器已理解請求,但拒絕處理;重新登入也無法解決。常見原因包括權限不足、目錄列表功能已停用,或防火牆封鎖了客戶端。

    定義於 RFC 9110

  • 404 Not Found

    伺服器找不到要求的資源。通常是連結輸入錯誤或已過時、頁面已刪除,或 API 路徑錯誤。

    定義於 RFC 9110

  • 405 Method Not Allowed

    資源存在,但不支援所用的 HTTP 方法,例如對唯讀 URL 發送 POST。回應會在 Allow 標頭中列出允許的方法。

    定義於 RFC 9110

  • 406 Not Acceptable

    伺服器無法使用客戶端 Accept 標頭列出的任何格式產生回應。

    定義於 RFC 9110

  • 407 Proxy Authentication Required

    與 401 類似,但客戶端必須先向 Proxy 驗證。常見於使用驗證 Proxy 的企業網路。

    定義於 RFC 9110

  • 408 Request Timeout

    伺服器等待客戶端完成傳送請求時逾時。常見於連線速度緩慢或中斷的情況。

    定義於 RFC 9110

  • 409 Conflict

    請求與資源目前的狀態衝突,例如編輯衝突,或嘗試建立已存在的項目。

    定義於 RFC 9110

  • 410 Gone

    資源已永久移除,不會再恢復。與 404 不同,此狀態碼會通知搜尋引擎更快移除該 URL。

    定義於 RFC 9110

  • 411 Length Required

    伺服器要求提供 Content-Length 標頭,但請求中未包含此標頭。

    定義於 RFC 9110

  • 412 Precondition Failed

    請求標頭中的條件未成立,例如 If-Match。此狀態碼可避免覆寫客戶端上次讀取後已變更的資源。

    定義於 RFC 9110

  • 413 Content Too Large

    請求本文大於伺服器允許的大小。常見於上傳檔案超過大小限制,例如 nginx 的 client_max_body_size。

    定義於 RFC 9110

  • 414 URI Too Long

    URL 長度超過伺服器可處理的範圍。通常是表單使用 GET 傳送過多資料,或重新導向迴圈不斷附加參數所造成。

    定義於 RFC 9110

  • 415 Unsupported Media Type

    伺服器不支援請求本文的格式,例如將 XML 傳送至預期接收 application/json 的端點。

    定義於 RFC 9110

  • 416 Range Not Satisfiable

    Range 標頭要求的位元組範圍超出資源大小。

    定義於 RFC 9110

  • 417 Expectation Failed

    伺服器無法滿足客戶端 Expect 標頭中的要求。

    定義於 RFC 9110

  • 418 I'm a teapot

    源自 1998 年愚人節玩笑「超文本咖啡壺控制協定」:茶壺拒絕煮咖啡。HTTP 將此狀態碼保留為未使用,但有些伺服器會將其作為彩蛋,或用來拒絕不受歡迎的機器人。

    定義於 RFC 2324 / RFC 9110 (Unused)

  • 419 Page Expired

    非標準

    非標準狀態碼。Laravel 會在表單的 CSRF 權杖遺失或過期時回傳,通常是因為工作階段逾時。

    定義於 Laravel

  • 420 Enhance Your Calm

    非標準

    非標準狀態碼。舊版 Twitter API 曾用於表示速率限制;標準狀態碼為 429。

    定義於 Twitter API v1

  • 421 Misdirected Request

    請求送達的伺服器無法針對此主機提供回應,例如 HTTP/2 連線被重複用於不同網域。

    定義於 RFC 9110

  • 422 Unprocessable Content

    請求格式正確,但內容無效,例如表單未通過驗證規則。API 廣泛使用此狀態碼表示驗證錯誤。

    定義於 RFC 9110

  • 423 Locked

    WebDAV 資源已鎖定,無法變更。

    定義於 RFC 4918

  • 424 Failed Dependency

    WebDAV 請求失敗,因為其依賴的另一項操作失敗。

    定義於 RFC 4918

  • 425 Too Early

    伺服器不會處理可能遭到重播的請求,例如透過 TLS 1.3 Early Data 傳送的請求。

    定義於 RFC 8470

  • 426 Upgrade Required

    伺服器拒絕使用目前的通訊協定處理請求,並在 Upgrade 標頭中指出所需的通訊協定。

    定義於 RFC 9110

  • 428 Precondition Required

    伺服器要求使用條件式請求(例如透過 If-Match),以避免更新遺失。

    定義於 RFC 6585

  • 429 Too Many Requests

    客戶端在指定時間內發送了過多請求。API 會用此狀態碼表示速率限制,並通常附上 Retry-After 標頭,指出何時可再次嘗試。

    定義於 RFC 6585

  • 431 Request Header Fields Too Large

    請求標頭過大,通常是 Cookie 過多或過大所致。清除網站的 Cookie 通常即可解決。

    定義於 RFC 6585

  • 444 No Response

    非標準

    非標準狀態碼。nginx 會在內部使用此狀態碼,在不傳送任何回應的情況下關閉連線,通常用來丟棄不受歡迎的流量;客戶端實際上不會收到此狀態碼。

    定義於 nginx

  • 451 Unavailable For Legal Reasons

    資源因法律原因無法使用,例如法院命令或政府審查。此編號取自小說《華氏 451 度》。

    定義於 RFC 7725

  • 494 Request Header Too Large

    非標準

    非標準狀態碼。nginx 自有的 431 變體,會在請求標頭超出其緩衝區限制時記錄。

    定義於 nginx

  • 495 SSL Certificate Error

    非標準

    非標準狀態碼。nginx 在客戶端憑證驗證失敗時回傳。

    定義於 nginx

  • 496 SSL Certificate Required

    非標準

    非標準狀態碼。nginx 在未提供必要的客戶端憑證時回傳。

    定義於 nginx

  • 497 HTTP Request Sent to HTTPS Port

    非標準

    非標準狀態碼。nginx 在收到傳送至 HTTPS 專用連接埠的純 HTTP 請求時回傳。

    定義於 nginx

  • 499 Client Closed Request

    非標準

    非標準狀態碼。nginx 會在伺服器回應前客戶端已關閉連線時記錄,例如使用者取消載入緩慢的頁面,或客戶端逾時。

    定義於 nginx

  • 500 Internal Server Error

    伺服器發生未預期的錯誤,無法完成請求。這是泛用錯誤,可能由程式錯誤、當機或設定錯誤造成;詳細資訊請查看伺服器記錄。

    定義於 RFC 9110

  • 501 Not Implemented

    伺服器不支援所需功能,例如不認得的 HTTP 方法。

    定義於 RFC 9110

  • 502 Bad Gateway

    閘道或 Proxy 從上游伺服器收到無效回應。常見於 nginx 或負載平衡器後方的應用程式當機或重新啟動時。

    定義於 RFC 9110

  • 503 Service Unavailable

    伺服器因負載過重或維護停機,暫時無法處理請求。Retry-After 標頭可能會指出何時可再次嘗試。

    定義於 RFC 9110

  • 504 Gateway Timeout

    閘道或 Proxy 未能及時收到上游伺服器的回應。常見原因是後端請求耗時過久,例如資料庫查詢時間太長。

    定義於 RFC 9110

  • 505 HTTP Version Not Supported

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

    定義於 RFC 9110

  • 506 Variant Also Negotiates

    伺服器的內容協商設定發生錯誤:選定的變體本身也設定為進行協商。

    定義於 RFC 2295

  • 507 Insufficient Storage

    伺服器無法儲存完成請求所需的資料,例如 WebDAV 伺服器的磁碟空間已滿。

    定義於 RFC 4918

  • 508 Loop Detected

    伺服器發現無限迴圈,因此停止了 WebDAV 作業。

    定義於 RFC 5842

  • 509 Bandwidth Limit Exceeded

    非標準

    非標準狀態碼。某些共用主機環境(Apache 模組、cPanel)會在網站超出頻寬額度時使用。

    定義於 Apache / cPanel

  • 510 Not Extended

    已淘汰或未使用

    必須加入其他擴充功能才能完成請求。此狀態碼定義於一份現已成為歷史文件的實驗性規格。

    定義於 RFC 2774

  • 511 Network Authentication Required

    用戶端必須先通過驗證才能存取網路。飯店、機場或咖啡廳的 Wi-Fi 可能會在您登入前,透過網路入口網站傳送此狀態碼。

    定義於 RFC 6585

  • 520 Web Server Returned an Unknown Error

    非標準

    非標準狀態碼。Cloudflare 在來源伺服器傳送空白、未知或非預期的回應時會傳回此狀態碼。

    定義於 Cloudflare

  • 521 Web Server Is Down

    非標準

    非標準狀態碼。Cloudflare 在來源伺服器拒絕連線時會傳回此狀態碼,通常是因為網頁伺服器已停止運作,或封鎖了 Cloudflare 的 IP 位址。

    定義於 Cloudflare

  • 522 Connection Timed Out

    非標準

    非標準狀態碼。Cloudflare 在與來源伺服器建立 TCP 連線逾時時會傳回此狀態碼。

    定義於 Cloudflare

  • 523 Origin Is Unreachable

    非標準

    非標準狀態碼。Cloudflare 無法連線至來源伺服器時會傳回此狀態碼,例如發生 DNS 或路由問題。

    定義於 Cloudflare

  • 524 A Timeout Occurred

    非標準

    非標準狀態碼。Cloudflare 已連線至來源伺服器,但未能在逾時時間內(預設為 100 秒)收到 HTTP 回應時會傳回此狀態碼。

    定義於 Cloudflare

  • 525 SSL Handshake Failed

    非標準

    非標準狀態碼。Cloudflare 與來源伺服器進行 SSL/TLS 交握失敗時會傳回此狀態碼。

    定義於 Cloudflare

  • 526 Invalid SSL Certificate

    非標準

    非標準狀態碼。來源伺服器的 SSL 憑證無效,且已啟用 Full (strict) SSL 模式時,Cloudflare 會傳回此狀態碼。

    定義於 Cloudflare

使用方式

  1. 輸入代碼數字(例如 404,或輸入 5 搜尋所有伺服器錯誤),也可以輸入「redirect」或「timeout」等關鍵字。
  2. 使用類別篩選器縮小清單範圍:資訊、成功、重新導向、用戶端錯誤或伺服器錯誤。
  3. 在任何代碼旁使用「複製連結」,即可分享該代碼的直接連結,例如附在錯誤回報中。

運作方式

每個 HTTP 回應都以三位數狀態碼開頭。第一位數字代表類別:1xx 為資訊回應、2xx 為成功、3xx 為重新導向、4xx 為要求造成的錯誤,5xx 則為伺服器端錯誤。用戶端若無法辨識特定狀態碼,會將它視為同類別的 x00 狀態碼,因此未知的 4xx 狀態碼會按 400 處理。

核心狀態碼定義於 RFC 9110(HTTP Semantics,2022),該文件取代了較早的 RFC 7231。其他狀態碼則來自擴充規範:WebDAV(RFC 4918)、定義 428、429、431 和 511 的 RFC 6585、定義 451 的 RFC 7725,以及定義 425 的 RFC 8470。RFC 9110 也重新命名了兩個狀態碼:413 現稱為「Content Too Large」,422 現稱為「Unprocessable Content」;你仍可能看到它們的舊名稱「Payload Too Large」和「Unprocessable Entity」。

有些你在記錄檔中看到的狀態碼並非標準。nginx 內部使用 444 和 494–499(499 表示用戶端等候時已放棄),而 Cloudflare 在無法從來源伺服器取得正常回應時會傳回 520–526。清單中會將這些標示為「Non-standard」。原因短語(例如「Not Found」)依照規範中的英文顯示;HTTP/2 和 HTTP/3 只會傳送數字。

範例

網站搬移時使用 301 還是 308

兩者都是永久重新導向。一般網頁搬移時使用 301;若用戶端必須將 POST 或 PUT 要求重新傳送至新 URL,則使用 308,因為部分用戶端收到 301 後會將 POST 改為 GET。

401 與 403 的差異

API 未收到權杖或收到已過期的權杖時會傳回 401,用戶端應要求使用者登入。若權杖有效,但使用者沒有權限,則會傳回 403;重新登入也無法解決問題。

診斷 nginx 後端的 502 錯誤

nginx 傳回 502 Bad Gateway,表示後端應用程式未能正常回應。請確認應用程式程序是否正在執行,以及檢查相關記錄;若傳回 504,則表示回應速度太慢。

常見問題

404 和 410 有什麼差別?

404 表示伺服器找不到資源,但不代表該資源未來的狀態。410 表示資源已刻意移除且不會再出現,有助於搜尋引擎更快移除該 URL。

驗證錯誤應回傳 400 還是 422?

兩者都會使用。400 適用於伺服器無法解析的請求,例如格式錯誤的 JSON。422 適用於可正確解析、但包含無效值的請求,例如電子郵件欄位缺少 @。

418「我是茶壺」(I'm a teapot)是真正的狀態碼嗎?

這個代碼來自 1998 年愚人節發布的 RFC。RFC 9110 將 418 保留為未使用狀態,避免它被指派給其他用途;少數伺服器會把它當作玩笑回傳,但它沒有標準定義。

499 是怎麼來的?

499 是 nginx 專用的狀態碼。用戶端在伺服器傳送回應前中斷連線時,這個代碼會出現在 nginx 記錄中。用戶端不會收到 499;這通常表示回應速度太慢或用戶端逾時。

搜尋引擎會把 302 視為 301 嗎?

302 表示暫時移動,因此搜尋引擎通常會先保留原始 URL 的索引。如果 302 長期存在,Google 可能會將它視為永久重新導向。永久移動請使用 301 或 308。

隱私權

清單已包含在頁面中。搜尋和篩選都在您的瀏覽器中進行;搜尋字詞不會傳送至任何地方,也不會納入分析資料。