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

sweetSunny123發表於2020-11-06

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

可以由應用使用。

參考資料
HTTP狀態碼列表
FTP狀態碼列表
FTP狀態碼列表
MDN CloseEvent
List of FTP server return codes
HTTP概述
Help for HTTP error 403: “Forbidden”

相關文章