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

此響應程式碼用於客戶端傳送 Range 標頭以請求資源的特定部分時。

207 Multi-Status (WebDAV)

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

208 Already Reported (WebDAV)

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

226 IM Used (HTTP Delta 編碼)

伺服器已完成對資源的 GET 請求,響應是應用於當前例項的一個或多個例項操作結果的表示。

重定向訊息

300 Multiple Choices

該請求有多個可能的響應。使用者代理或使用者應選擇其中一個。(沒有標準化的方式來選擇其中一個響應,但建議使用指向可能性的 HTML 連結,以便使用者可以選擇。)

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 響應程式碼具有相同的語義,區別在於使用者代理不能更改使用的 HTTP 方法:如果第一個請求中使用了 POST,則第二個請求中必須使用 POST

308 Permanent Redirect

這意味著資源現在永久位於另一個 URI,由 Location: HTTP 響應標頭指定。這與 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 來刪除資源。

406 Not Acceptable

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

407 Proxy Authentication Required

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

408 Request Timeout

此響應由某些伺服器在空閒連線上傳送,即使沒有客戶端的先前請求。這意味著伺服器希望關閉此未使用的連線。自某些瀏覽器(如 Chrome、Firefox 27+ 或 IE9)使用 HTTP 預連線機制來加快瀏覽速度以來,此響應使用得更多。另請注意,某些伺服器會直接關閉連線,而不會發送此訊息。

409 Conflict

當請求與伺服器的當前狀態衝突時,會發送此響應。

410 Gone

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

411 Length Required

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

412 Precondition Failed

客戶端在其標頭檔案中指示了伺服器不滿足的先決條件。

413 請求實體過大

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

414 URI Too Long

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

415 Unsupported Media Type

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

416 Range Not Satisfiable

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

417 Expectation Failed

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

418 I'm a teapot

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

421 Misdirected Request

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

422 不可處理的實體 (WebDAV)

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

423 已鎖定 (WebDAV)

正在訪問的資源已被鎖定。

424 依賴失敗 (WebDAV)

請求由於先前請求失敗而失敗。

425 太早 實驗性

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

426 Upgrade Required

伺服器拒絕使用當前協議執行請求,但可能願意在客戶端升級到其他協議後執行。伺服器在 426 響應中傳送一個Upgrade頭來指示所需的協議。

428 Precondition Required

原始伺服器要求請求具有條件性。此響應旨在防止“丟失更新”問題,其中客戶端GET資源狀態,對其進行修改並將其PUT回伺服器,而與此同時,第三方已在伺服器上修改了狀態,導致衝突。

429 Too Many Requests

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

431 Request Header Fields Too Large

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

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

伺服器錯誤響應

500 Internal Server Error

伺服器遇到了無法處理的情況。

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 儲存空間不足 (WebDAV)

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

508 迴圈檢測 (WebDAV)

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

510 Not Extended

伺服器需要對請求進行進一步擴展才能完成請求。

511 Network Authentication Required

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

瀏覽器相容性

BCD 表僅在啟用

另請參閱