常見HTTP/FTP/WebSockets狀態碼大全

HTTP

1xx消息

這一類型的狀態碼,代表請求已被接受,需要繼續處理。這類響應是臨時響應,只包含狀態行和某些可選的響應頭信息,並以空行結束。由於HTTP/1.0協議中沒有定義任何1xx狀態碼,所以除非在某些試驗條件下,服務器禁止向此類客戶端發送1xx響應。 這些狀態碼代表的響應都是信息性的,標示客戶應該採取的其他行動。

  • 100 - 客戶端應當繼續發送請求
  • 101 - 切換協議
  • 102 - 處理將被繼續執行

2xx成功

這一類型的狀態碼,代表請求已成功被服務器接收、理解、並接受。

  • 200 - (成功)請求已成功,請求所希望的響應頭或數據體將隨此響應返回。
  • 201 - (已創建)請求成功且服務器已創建了新的資源。。
  • 202 - (已接受)服務器已接受了請求,但尚未對其進行處理。
  • 203 - (非授權信息)服務器已成功處理了請求,但返回了可能來自另一來源的信息。
  • 204 - (無內容)服務器成功處理了請求,但未返回任何內容。
  • 205 - (重置內容)服務器成功處理了請求,但未返回任何內容。
  • 206 - (部分內容)服務器成功處理了部分 GET 請求。

3xx重定向

這類狀態碼代表需要客戶端採取進一步的操作才能完成請求。通常,這些狀態碼用來重定向,後續的請求地址(重定向目標)在本次響應的Location域中指明。按照HTTP/1.0版規範的建議,瀏覽器不應自動訪問超過5次的重定向。對重定向一般是由瀏覽器來控制重定向的次數,重定向會導致客戶端不必要的資源消耗

  • 300 - 多重選擇,被請求的資源有一系列可供選擇的回饋信息。
  • 301 - 永久移除,被請求的資源已永久移動到新位置。
  • 302 - 臨時移動,請求的資源現在臨時從不同的URI響應請求。
  • 303 - 查看其他位置,對應當前請求的響應可以在另一個URI上被找到,而且客戶端應當採用GET的方式訪問那個資源。
  • 304 - 未修改。自從上次請求後,請求的網頁未被修改過。服務器返回此響應時,不會返回網頁內容。
  • 305 - 使用代理,被請求的資源必須通過指定的代理才能被訪問。
  • 306 - 臨時重定向,在最新版的規範中,306狀態碼已經不再被使用。
  • 307 - 臨時重定向。

4xx客戶端錯誤

這類的狀態碼代表了客戶端看起來可能發生了錯誤,妨礙了服務器的處理。

  • 400 - 錯誤的請求。
  • 401 - 訪問被拒絕。
  • 402 - 付款要求。
  • 403 - 禁止訪問
    • 403.1 - 執行訪問被禁止。
    • 403.2 - 讀訪問被禁止。
    • 403.3 - 寫訪問被禁止。
    • 403.4 - 要求 SSL。
    • 403.5 - 要求 SSL 128。
    • 403.6 - IP 地址被拒絕。
    • 403.7 - 要求客戶端證書。
    • 403.8 - 站點訪問被拒絕。
    • 403.9 - 用戶數過多。
    • 403.10 - 配置無效。
    • 403.11 - 密碼更改。
    • 403.12 - 拒絕訪問映射表。
    • 403.13 - 客戶端證書被吊銷。
    • 403.14 - 拒絕目錄列表。
    • 403.15 - 超出客戶端訪問許可。
    • 403.16 - 客戶端證書不受信任或無效。
    • 403.17 - 客戶端證書已過期或尚未生效。
    • 403.18 - 在當前的應用程序池中不能執行所請求的 URL。
    • 403.19 - 不能爲這個應用程序池中的客戶端執行 CGI。
    • 403.20 - Passport 登錄失敗。
  • 404 - 未找到。
    • 404.0 -(無) – 沒有找到文件或目錄。
    • 404.1 - 無法在所請求的端口上訪問 Web 站點。
    • 404.2 - Web 服務擴展鎖定策略阻止本請求。
    • 404.3 - MIME 映射策略阻止本請求。
  • 405 - 用來訪問本頁面的 HTTP 謂詞不被允許(方法不被允許)
  • 406 - 客戶端瀏覽器不接受所請求頁面的 MIME 類型。
  • 407 - 要求進行代理身份驗證。
  • 408 - 請求超時。
  • 409 - 由於和被請求的資源的當前狀態之間存在衝突,請求無法完成。
  • 410 - 被請求的資源在服務器上已經不再可用,而且沒有任何已知的轉發地址。
  • 411 - 服務器拒絕在沒有定義Content-Length頭的情況下接受請求。
  • 412 - 前提條件失敗。
  • 413 – 請求實體太大。
  • 414 - 請求 URI 太長。
  • 415 – 不支持的媒體類型。
  • 416 – 所請求的範圍無法滿足。
  • 417 – 執行失敗。
  • 418 – 本操作碼是在1998年作爲IETF的傳統愚人節笑話
  • 421 – 從當前客戶端所在的IP地址到服務器的連接數超過了服務器許可的最大範圍。
  • 422 – 請求格式正確,但是由於含有語義錯誤,無法響應。
  • 423 – 當前資源被鎖定。
  • 424 – 由於之前的某個請求發生的錯誤,導致當前請求失敗。
  • 425 – 無序的集合。
  • 426 – 客戶端應當切換到TLS/1.0。
  • 451 – (由IETF在2015覈准後新增加)該訪問因法律的要求而被拒絕。

5xx服務器錯誤

這類狀態碼代表了服務器在處理請求的過程中有錯誤或者異常狀態發生,也有可能是服務器意識到以當前的軟硬件資源無法完成對請求的處理。

  • 500 - 內部服務器錯誤。
  • 501 - 尚未實施,頁眉值指定了未實現的配置。
  • 502 - 錯誤網關,Web 服務器用作網關或代理服務器時收到了無效響應。
  • 503 - 服務不可用,這個錯誤代碼爲 IIS 6.0 所專用。
  • 504 - 網關超時,服務器作爲網關或代理,未及時從上游服務器接收請求。
  • 505 - HTTP 版本不受支持,服務器不支持請求中所使用的 HTTP 協議版本。
  • 506 - 服務器沒有正確配置。
  • 507 - 存儲空間不足。服務器無法存儲完成請求所必須的內容。這個狀況被認爲是臨時的。
  • 509 - 帶寬超過限制。這不是一個官方的狀態碼,但是仍被廣泛使用。
  • 510 - 沒有擴展,獲取資源所需要的策略並沒有被滿足。

FTP

1xx

肯定的初步答覆,這些狀態代碼指示一項操作已經成功開始,但客戶端希望在繼續操作新命令前得到另一個答覆。

  • 110 重新啓動標記答覆。
  • 120 服務已就緒,在 nnn 分鐘後開始。
  • 125 數據連接已打開,正在開始傳輸。
  • 150 文件狀態正常,準備打開數據連接。

2xx

肯定的完成答覆,一項操作已經成功完成。客戶端可以執行新命令。

  • 200 命令確定。
  • 202 未執行命令,站點上的命令過多。
  • 211 系統狀態,或系統幫助答覆。
  • 212 目錄狀態。
  • 213 文件狀態。
  • 214 幫助消息。
  • 215 NAME 系統類型,其中,NAME 是 Assigned Numbers 文檔中所列的正式系統名稱。
  • 220 服務就緒,可以執行新用戶的請求。
  • 221 服務關閉控制連接。如果適當,請註銷。
  • 225 數據連接打開,沒有進行中的傳輸。
  • 226 關閉數據連接。請求的文件操作已成功(例如,傳輸文件或放棄文件)。
  • 227 進入被動模式 (h1,h2,h3,h4,p1,p2)。
  • 230 用戶已登錄,繼續進行。
  • 250 請求的文件操作正確,已完成。
  • 257 已創建“PATHNAME”。

3xx

肯定的中間答覆,該命令已成功,但服務器需要更多來自客戶端的信息以完成對請求的處理。

  • 331 用戶名正確,需要密碼。
  • 332 需要登錄帳戶。
  • 350 請求的文件操作正在等待進一步的信息。

4xx

瞬態否定的完成答覆,該命令不成功,但錯誤是暫時的。如果客戶端重試命令,可能會執行成功。

  • 421 服務不可用,正在關閉控制連接。如果服務確定它必須關閉,將向任何命令發送這一應答。
  • 425 無法打開數據連接。
  • 426 Connection closed; transfer aborted.
  • 450 未執行請求的文件操作。文件不可用(例如,文件繁忙)。
  • 451 請求的操作異常終止:正在處理本地錯誤。
  • 452 未執行請求的操作。系統存儲空間不夠。

5xx

永久性否定的完成答覆,該命令不成功,錯誤是永久性的。如果客戶端重試命令,將再次出現同樣的錯誤。

  • 500 語法錯誤,命令無法識別。這可能包括諸如命令行太長之類的錯誤。
  • 501 在參數中有語法錯誤。
  • 502 未執行命令。
  • 503 錯誤的命令序列。
  • 504 未執行該參數的命令。
  • 530 未登錄。
  • 532 存儲文件需要帳戶。
  • 550 未執行請求的操作。文件不可用(例如,未找到文件,沒有訪問權限)。
  • 551 請求的操作異常終止:未知的頁面類型。
  • 552 請求的文件操作異常終止:超出存儲分配(對於當前目錄或數據集)。
  • 553 未執行請求的操作。不允許的文件名。

6xx

  • 600 Series,Replies regarding confidentiality and integrity
  • 631 Integrity protected reply.
  • 632 Confidentiality and integrity protected reply.
  • 633 Confidentiality protected reply.

WebSockets狀態碼

WebSockets 的CloseEvent 會在連接關閉時發送給使用 WebSockets 的客戶端。它在 WebSocket 對象的 onclose 事件監聽器中使用。服務端發送的關閉碼,以下爲已分配的狀態碼。

狀態碼

名稱

描述

0–999

-

保留段, 未使用。

1000

CLOSE_NORMAL

正常關閉; 無論爲何目的而創建, 該鏈接都已成功完成任務。

1001

CLOSE_GOING_AWAY

終端離開, 可能因爲服務端錯誤, 也可能因爲瀏覽器正從打開連接的頁面跳轉離開。

1002

CLOSE_PROTOCOL_ERROR

由於協議錯誤而中斷連接。

1003

CLOSE_UNSUPPORTED

由於接收到不允許的數據類型而斷開連接 (如僅接收文本數據的終端接收到了二進制數據)。

1004

-

保留。 其意義可能會在未來定義。

1005

CLOSE_NO_STATUS

保留。 表示沒有收到預期的狀態碼。

1006

CLOSE_ABNORMAL

保留。 用於期望收到狀態碼時連接非正常關閉 (也就是說, 沒有發送關閉幀)。

1007

Unsupported Data

由於收到了格式不符的數據而斷開連接 (如文本消息中包含了非 UTF-8 數據)。

1008

Policy Violation

由於收到不符合約定的數據而斷開連接。 這是一個通用狀態碼, 用於不適合使用 1003 和 1009 狀態碼的場景。

1009

CLOSE_TOO_LARGE

由於收到過大的數據幀而斷開連接。

1010

Missing Extension

客戶端期望服務器商定一個或多個拓展, 但服務器沒有處理, 因此客戶端斷開連接。

1011

Internal Error

客戶端由於遇到沒有預料的情況阻止其完成請求, 因此服務端斷開連接。

1012

Service Restart

服務器由於重啓而斷開連接。 [Ref]

1013

Try Again Later

服務器由於臨時原因斷開連接, 如服務器過載因此斷開一部分客戶端連接。 [Ref]

1014

-

由 WebSocket

1015

TLS Handshake

保留。 表示連接由於無法完成 TLS 握手而關閉 (例如無法驗證服務器證書)。

1016–1999

-

由 WebSocket 標準保留以便未來使用。

2000–2999

-

由 WebSocket 拓展保留使用。

3000–3999

-

可以由庫或框架使用。 不應由應用使用。 可以在 IANA 註冊, 先到先得。

4000–4999

-

可以由應用使用。

參考資料

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章