HTTP 響應狀態碼

HTTP 響應狀態碼錶示特定的 HTTP 請求是否已成功完成。響應分為五類:

  1. 資訊響應 (100199)
  2. 成功響應 (200299)
  3. 重定向訊息 (300399)
  4. 客戶端錯誤響應 (400499)
  5. 伺服器錯誤響應 (500599)

下面列出的狀態碼由 RFC 9110 定義。

注意:如果您收到此處未列出的響應,則它是一個非標準響應,可能是伺服器軟體特有的。

資訊響應

100 Continue

此臨時響應表示客戶端應繼續請求,如果請求已完成,則忽略該響應。

101 Switching Protocols

此程式碼是作為對客戶端 Upgrade 請求頭的響應傳送的,表示伺服器正在切換的協議。

102 Processing 已棄用

此程式碼用於 WebDAV 上下文,表示伺服器已收到請求,但在響應時沒有可用的狀態。

103 Early Hints

此狀態碼主要用於 Link 頭部,允許使用者代理在伺服器準備響應時開始 預載入 資源,或 預連線 到頁面將需要資源的來源。

成功響應

200 OK

請求成功。 “成功”的結果和含義取決於 HTTP 方法:

  • GET:資源已獲取並在訊息正文中傳輸。
  • HEAD:表示頭包含在響應中,不包含任何訊息正文。
  • PUTPOST:描述操作結果的資源在訊息正文中傳輸。
  • TRACE:訊息正文包含伺服器收到的請求。
201 Created

請求成功,並建立了一個新資源。這通常是在 POST 請求或某些 PUT 請求後傳送的響應。

202 Accepted

請求已收到,但尚未執行。它是非承諾性的,因為 HTTP 中無法稍後傳送非同步響應來指示請求的結果。它適用於由另一個程序或伺服器處理請求的情況,或用於批處理。

203 Non-Authoritative Information

此響應程式碼表示返回的元資料與源伺服器上可用的元資料不完全相同,而是從本地或第三方副本收集的。這主要用於其他資源的映象或備份。除了這種特定情況外,200 OK 響應比此狀態更受歡迎。

204 No Content

此請求沒有內容可傳送,但頭部很有用。使用者代理可以使用新的頭部更新此資源的快取頭部。

205 Reset Content

告訴使用者代理重置傳送此請求的文件。

206 Partial Content

當客戶端請求了資源的某一部分或某些部分時,此響應程式碼用於響應 範圍請求

207 Multi-Status (WebDAV)

傳達有關多個資源的資訊,適用於可能需要多個狀態碼的情況。

208 Already Reported (WebDAV)

<dav:propstat> 響應元素中使用,以避免重複列舉同一集合的多個繫結的內部成員。

226 IM Used (HTTP Delta 編碼)

伺服器已履行了針對資源的 GET 請求,並且響應是對當前例項應用了一個或多個例項操作結果的表示。

重定向訊息

300 Multiple Choices

代理驅動的內容協商 中,請求有多個可能的響應,使用者代理或使用者應該選擇其中一個。客戶端沒有標準化的方法來自動選擇其中一個響應,因此很少使用此方法。

301 Moved Permanently

請求資源的 URL 已永久更改。新 URL 在響應中給出。

302 Found

此響應程式碼表示請求資源的 URI 已暫時更改。將來可能會對 URI 進行進一步更改,因此客戶端在將來的請求中應使用相同的 URI。

303 See Other

伺服器傳送此響應以指示客戶端使用 GET 請求在另一個 URI 獲取請求的資源。

304 Not Modified

這用於快取目的。它告訴客戶端響應未被修改,因此客戶端可以繼續使用相同的 快取 版本的響應。

305 Use Proxy 已棄用

在 HTTP 規範的早期版本中定義,表示必須透過代理訪問請求的響應。由於對代理的帶內配置存在安全問題,因此已棄用。

306 未使用

此響應程式碼不再使用;但已保留。它在 HTTP/1.1 規範的早期版本中使用。

307 Temporary Redirect

伺服器傳送此響應以指示客戶端使用與先前請求中使用的相同方法在另一個 URI 獲取請求的資源。這與 302 Found 響應程式碼具有相同的語義,但使用者代理不得更改所使用的 HTTP 方法:如果第一個請求使用了 POST,則重定向請求中必須使用 POST

308 Permanent Redirect

這意味著資源現在永久位於另一個 URI,由 Location 響應頭部指定。這與 301 Moved Permanently HTTP 響應程式碼具有相同的語義,但使用者代理不得更改所使用的 HTTP 方法:如果第一個請求使用了 POST,則第二個請求中必須使用 POST

客戶端錯誤響應

400 Bad Request

由於被認為是客戶端錯誤(例如,格式錯誤的請求語法、無效的請求訊息幀或欺騙性請求路由),伺服器無法或不會處理請求。

401 Unauthorized

儘管 HTTP 標準規定“未經授權”,但語義上此響應表示“未經身份驗證”。也就是說,客戶端必須自行進行身份驗證才能獲取請求的響應。

402 Payment Required

此程式碼的最初目的是用於數字支付系統,但是此狀態碼很少使用,並且沒有標準約定。

403 Forbidden

客戶端無權訪問內容;也就是說,它未經授權,因此伺服器拒絕提供請求的資源。與 401 Unauthorized 不同,客戶端的身份伺服器已知。

404 Not Found

伺服器找不到請求的資源。在瀏覽器中,這意味著 URL 未被識別。在 API 中,這也可以意味著端點有效但資源本身不存在。伺服器也可能傳送此響應而不是 403 Forbidden 以隱藏未經授權的客戶端的資源存在。由於其在網路上頻繁出現,此響應程式碼可能是最著名的。

405 Method Not Allowed

伺服器已知 請求方法,但目標資源不支援。例如,API 可能不允許對資源進行 DELETE,或者完全不允許 TRACE 方法。

406 Not Acceptable

此響應是在 Web 伺服器執行 伺服器驅動的內容協商 後,沒有找到任何符合使用者代理給定條件的內容時傳送的。

407 Proxy Authentication Required

這類似於 401 Unauthorized,但需要透過代理進行身份驗證。

408 Request Timeout

此響應由某些伺服器在空閒連線上傳送,即使客戶端之前沒有任何請求。這意味著伺服器希望關閉此未使用的連線。由於一些瀏覽器使用 HTTP 預連線機制來加速瀏覽,因此此響應的使用頻率更高。一些伺服器可能會在不傳送此訊息的情況下關閉連線。

409 Conflict

當請求與伺服器的當前狀態衝突時,會發送此響應。在 WebDAV 遠端 Web 創作中,409 響應是傳送給客戶端的錯誤,以便使用者可以解決衝突並重新提交請求。

410 Gone

當請求的內容已從伺服器永久刪除,且沒有轉發地址時,會發送此響應。客戶端應刪除其快取和指向資源的連結。HTTP 規範旨在將此狀態碼用於“限時、促銷服務”。API 不應覺得有必要使用此狀態碼來指示已刪除的資源。

411 Length Required

伺服器拒絕請求,因為未定義 Content-Length 頭部欄位,並且伺服器需要它。

412 Precondition Failed

條件請求 中,客戶端在其頭部中指出了伺服器不滿足的先決條件。

413 Content Too Large

請求正文大於伺服器定義的限制。伺服器可能會關閉連線或返回 Retry-After 頭部欄位。

414 URI Too Long

客戶端請求的 URI 長度超過伺服器願意解釋的長度。

415 Unsupported Media Type

伺服器不支援請求資料的媒體格式,因此伺服器拒絕請求。

416 Range Not Satisfiable

請求中 Range 頭部欄位指定的 範圍 無法滿足。範圍可能超出了目標資源資料的大小。

417 Expectation Failed

此響應程式碼表示伺服器無法滿足 Expect 請求頭部欄位指示的期望。

418 I'm a teapot

伺服器拒絕嘗試用茶壺沖泡咖啡。

421 Misdirected Request

請求指向了一個無法生成響應的伺服器。這可能由一個未配置為為請求 URI 中包含的方案和許可權組合生成響應的伺服器傳送。

422 Unprocessable Content (WebDAV)

請求格式正確,但由於語義錯誤而無法執行。

423 Locked (WebDAV)

正在訪問的資源被鎖定。

424 Failed Dependency (WebDAV)

請求失敗是由於先前的請求失敗。

425 Too Early 實驗性

表示伺服器不願意冒險處理可能被重放的請求。

426 Upgrade Required

伺服器拒絕使用當前協議執行請求,但客戶端升級到不同協議後可能願意這樣做。伺服器在 426 響應中傳送 Upgrade 頭部以指示所需的協議。

428 Precondition Required

源伺服器要求請求是 條件性的。此響應旨在防止“丟失更新”問題,即客戶端 GET 資源的 상태,修改它並將其 PUT 回伺服器,而同時第三方已修改伺服器上的狀態,導致衝突。

429 Too Many Requests

使用者在給定時間內傳送了太多請求(速率限制)。

431 Request Header Fields Too Large

伺服器不願意處理請求,因為其頭部欄位過大。在減小請求頭部欄位的大小後,請求可以重新提交。

使用者代理請求了一個無法合法提供的資源,例如被政府審查的網頁。

伺服器錯誤響應

500 Internal Server Error

伺服器遇到了無法處理的情況。此錯誤是通用錯誤,表示伺服器無法找到更合適的 5XX 狀態碼進行響應。

501 Not Implemented

伺服器不支援且無法處理請求方法。伺服器必須支援(因此不得返回此程式碼)的唯一方法是 GETHEAD

502 Bad Gateway

此錯誤響應表示伺服器在作為閘道器獲取處理請求所需的響應時,收到了無效響應。

503 Service Unavailable

伺服器尚未準備好處理請求。常見原因包括伺服器因維護而停機或過載。請注意,除了此響應外,還應傳送一個解釋問題的使用者友好頁面。此響應應用於臨時情況,如果可能,Retry-After HTTP 頭部應包含服務恢復的估計時間。網站管理員還必須注意與此響應一起傳送的快取相關頭部,因為這些臨時情況響應通常不應被快取。

504 Gateway Timeout

當伺服器作為閘道器並且無法及時獲取響應時,會給出此錯誤響應。

505 HTTP Version Not Supported

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

506 Variant Also Negotiates

伺服器存在內部配置錯誤:在內容協商期間,所選變體被配置為自行進行內容協商,這導致在建立響應時出現迴圈引用。

507 Insufficient Storage (WebDAV)

無法對資源執行該方法,因為伺服器無法儲存成功完成請求所需的表示。

508 Loop Detected (WebDAV)

伺服器在處理請求時檢測到無限迴圈。

510 Not Extended

客戶端請求聲明瞭一個應與處理請求一起使用的 HTTP 擴充套件 (RFC 2774),但不支援該擴充套件。

511 Network Authentication Required

表示客戶端需要進行身份驗證才能獲得網路訪問許可權。

瀏覽器相容性

另見