HTTP 返回狀態碼

1、HTTP 超文本傳輸協議數據庫

HTTP 是基於客戶端/服務端(C/S)的架構模型,經過一個可靠的連接來交換信息,是一個無狀態的請求/響應協議。

一個HTTP "客戶端"是一個應用程序(Web瀏覽器或其餘任何客戶端),經過鏈接到服務器達到向服務器發送一個或多個HTTP的請求的目的。
一個HTTP "服務器"一樣也是一個應用程序(一般是一個Web服務,如Apache Web服務器或IIS服務器等),經過接收客戶端的請求並向客戶端發送HTTP響應數據。

HTTP 使用統一資源標識符(Uniform Resource Identifiers, URI)來傳輸數據和創建鏈接。 HTTP 請求到服務器的請求消息包括如下格式:請求行(request line)、請求頭部(header)、空行和請求數據四個部分組成。

HTTP1.0 定義了三種請求方法: GET, POST 和 HEAD方法。 HTTP1.1 新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

2、HTTP 請求方式:瀏覽器

GET 請求指定的頁面信息,並返回實體主體。 HEAD 相似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭 POST    向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會致使新的資源的創建和/或已有資源的修改。 PUT 從客戶端向服務器傳送的數據取代指定的文檔的內容。 DELETE 請求服務器刪除指定的頁面。 CONNECT    HTTP/1.1協議中預留給可以將鏈接改成管道方式的代理服務器。 OPTIONS 容許客戶端查看服務器的性能。 TRACE    回顯服務器收到的請求,主要用於測試或診斷。

3、HTTP 返回狀態碼服務器

1xx 處理信息,服務器收到請求,須要請求者繼續執行操做; 2xx 請求成功,操做被成功接收並處理; 3xx 重定向,須要進一步的操做以完成請求; 4xx 客戶端錯誤,請求包含語法錯誤或沒法完成請求; 5xx 服務器錯誤,服務器在處理請求的過程當中發生了錯誤;

狀態碼返回網絡

1xx - 信息提示   這些狀態代碼表示臨時的響應。客戶端在收到常規響應以前,應準備接收一個或多個 1xx 響應。 100 - Continue 繼續;
  初始的請求已經接受,客戶應當繼續發送請求的其他部分。(HTTP 1.1新) 101 - Switching Protocols 切換協議;
  服務器將聽從客戶的請求轉換到另一種協議(HTTP 1.1新) 2xx - 成功   這類狀態代碼代表服務器成功地接受了客戶端請求。 200 - OK 正常;
  對GET和POST請求的應答文檔跟在後面。
201 - Created 已建立;
  服務器已經建立了文檔,Location頭給出了它的URL。
202 - Accepted 接受;
  已經接受請求,但處理還沒有完成。
203 - Non-Authoritative Information 非權威的信息;
  文檔已經正常地返回,但一些應答頭可能不正確,由於使用的是文檔的拷貝,非權威性信息(HTTP 1.1新)。 204 - No Content 沒有內容;
  瀏覽器應該繼續顯示原來的文檔。若是用戶按期地刷新頁面,而Servlet能夠肯定用戶文檔足夠新,這個狀態代碼是頗有用的。
205 - Reset Content 重置內容;
  但瀏覽器應該重置它所顯示的內容。用來強制瀏覽器清除表單輸入內容(HTTP 1.1新)。 206 - Partial Content 部份內容;
  客戶發送了一個帶有Range頭的GET請求,服務器完成了它(HTTP 1.1新)。 207 - 多狀態   緊跟消息體後面的是xml消息而且包含了多個單獨的響應狀態碼,響應的數量取決於子請求的個數。 208 - 已經報告   一個DAV的綁定成員被前一個請求枚舉,而且沒有被再一次包括。 226 - IM Used   服務器已經知足了請求所要的資源,而且響應是一個或者多個實例操做應用於當前實例的結果 3xx - 重定向   客戶端瀏覽器必須採起更多操做來實現請求。
  例如,瀏覽器可能不得不請求服務器上的不一樣的頁面,或經過代理服務器重複該請求。
300 - Multiple Choices 多重選擇;   客戶請求的文檔能夠在多個位置找到,這些位置已經在返回的文檔內列出。若是服務器要提出優先選擇,則應該在Location應答頭指明。 301 - Moved Permanently 永久移動;   客戶請求的文檔在其餘地方,新的URL在Location頭中給出,瀏覽器應該自動地訪問新的URL。 302 - Found 發現;   但新的URL應該被視爲臨時性的替代,而不是永久性的。注意,在HTTP1.0中對應的狀態信息是「Moved Temporatily」。出現該狀態代碼時,瀏覽器可以自動訪問新的URL,所以它是一個頗有用的狀態代碼。注意這個狀態代碼有時候能夠和301替換使用。例如,若是瀏覽器錯誤地請求 http://host/~user (缺乏了後面的斜槓),有的服務器返回301,有的則返回302。嚴格地說,咱們只能假定只有當原來的請求是GET時瀏覽器纔會自動重定向。請參見 307。 303 - See Other 查看其它;   相似於301/302,不一樣之處在於,若是原來的請求是POST,Location頭指定的重定向目標文檔應該經過GET提取(HTTP相似於301/302,不一樣之處在於,若是原來的請求是POST,Location頭指定的重定向目標文檔應該經過GET提取(HTTP 1.1新)。 304 - Not Modified 未修改;   客戶端有緩衝的文檔併發出了一個條件性的請求(通常是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)。服務器告訴客戶,原來緩衝的文檔還能夠繼續使用。 305 - Use Proxy 使用代理;   客戶請求的文檔應該經過Location頭所指明的代理服務器提取(HTTP 1.1新)。 306 - 切換代理;   再也不使用。原意是隨後的請求應該使用指定的代理。 307 - Temporary Redirect 臨時跳轉;   許多瀏覽器會錯誤地響應302應答進行重定向,即便原來的請求是POST,即便它實際上只能在POST請求的應答是303時才能重定向。因爲這個緣由,HTTP許多瀏覽器會錯誤地響應302應答進行重定向,即便原來的請求是POST,即便它實際上只能在POST請求的應答是303時才能重定向。因爲這個緣由,HTTP 1.1新增了307,以便更加清除地區分幾個狀態代碼:當出現303應答時,瀏覽器能夠跟隨重定向的GET和POST請求;若是是307應答,則瀏覽器只能跟隨對GET請求的重定向。(HTTP 1.1新) 308 - 永久轉移   這個請求和之後的請求都應該被另外一個URI地址從新發送。307、308和30二、301有相同的表現,可是不容許HTTP方法改變。例如,請求表單到一個永久轉移的資源將會繼續順利地執行。 4xx - 客戶端錯誤   發生錯誤,客戶端彷佛有問題。
  例如,客戶端請求不存在的頁面,客戶端未提供有效的身份驗證信息。
400 -
Bad Request 錯誤請求;   請求出現語法錯誤。 401 - Unauthorized 未受權;   訪問被拒絕,客戶試圖未經受權訪問受密碼保護的頁面。應答中會包含一個WWW-Authenticate頭,瀏覽器據此顯示用戶名字/密碼對話框,而後在填寫合適的Authorization頭後再次發出請求。IIS 定義了許多不一樣的 401 錯誤,它們指明更爲具體的錯誤緣由。這些具體的錯誤代碼在瀏覽器中顯示,但不在 IIS 日誌中顯示: 401.1 - 登陸失敗。 401.2 - 服務器配置致使登陸失敗。 401.3 - 因爲 ACL 對資源的限制而未得到受權。 401.4 - 篩選器受權失敗。 401.5 - ISAPI/CGI 應用程序受權失敗。 401.7 – 訪問被 Web 服務器上的 URL 受權策略拒絕。這個錯誤代碼爲 IIS 6.0 所專用。 402 - 須要付款   爲之後保留使用。原意是該狀態碼可被用於一些數字貨幣或者是微支付,可是目前尚未普及,因此這些代碼不常常被使用。YouYube使用這個狀態若是某個IP地址發出了過多的請求,並要求用戶輸入驗證碼。 403 - Forbidden 禁止訪問;   資源不可用。服務器理解客戶的請求,但拒絕處理它。一般因爲服務器上文件或目錄的權限設置致使。禁止訪問:IIS資源不可用。服務器理解客戶的請求,但拒絕處理它。一般因爲服務器上文件或目錄的權限設置致使。禁止訪問:IIS 定義了許多不一樣的 403 錯誤,它們指明更爲具體的錯誤緣由: 403.1 - 執行訪問被禁止。 403.2 - 讀訪問被禁止。 403.3 - 寫訪問被禁止。 403.4 - 要求 SSL。 403.5 - 要求 SSL 128403.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。
  這個錯誤代碼爲 IIS 6.0 所專用。 403.19 - 不能爲這個應用程序池中的客戶端執行 CGI。
  這個錯誤代碼爲 IIS 6.0 所專用。 403.20 - Passport 登陸失敗。
  這個錯誤代碼爲 IIS 6.0 所專用。 404 -
Not Found 找不到;   沒法找到指定位置的資源。這也是一個經常使用的應答。 404.0 -(無) – 沒有找到文件或目錄。 404.1 - 沒法在所請求的端口上訪問 Web 站點。 404.2 - Web 服務擴展鎖定策略阻止本請求。 404.3 - MIME 映射策略阻止本請求。 405 - Method Not Allowed 方法不容許;   請求方法(GET、POST、HEAD、Delete、PUT、TRACE等)對指定的資源不適用,用來訪問本頁面的 HTTP 謂詞不被容許(方法不被容許)(HTTP 1.1新) 406 - Not Acceptable 不可接受;   指定的資源已經找到,但它的MIME類型和客戶在Accpet頭中所指定的不兼容,客戶端瀏覽器不接受所請求頁面的 MIME 類型(HTTP 1.1新)。 407 - Proxy Authentication Required 須要代理認證;   要求進行代理身份驗證,相似於401,表示客戶必須先通過代理服務器的受權。(HTTP 1.1新) 408 - Request Timeout 請求超時;   在服務器許可的等待時間內,客戶一直沒有發出任何請求。客戶能夠在之後重複同一請求。(HTTP在服務器許可的等待時間內,客戶一直沒有發出任何請求。客戶能夠在之後重複同一請求。(HTTP 1.1新) 409 - Conflict 衝突;   一般和PUT請求有關。因爲請求和資源的當前狀態相沖突,所以請求不能成功。(HTTP 1.1新) 410 - Gone 遺失的;   所請求的文檔已經再也不可用,並且服務器不知道應該重定向到哪個地址。它和404的不一樣在於,返回407表示文檔永久地離開了指定的位置,而404表示因爲未知的緣由文檔不可用。(HTTP所請求的文檔已經再也不可用,並且服務器不知道應該重定向到哪個地址。它和404的不一樣在於,返回407表示文檔永久地離開了指定的位置,而404表示因爲未知的緣由文檔不可用。(HTTP 1.1新) 411 - Length Required 長度要求;   服務器不能處理請求,除非客戶發送一個Content-Length頭。(HTTP服務器不能處理請求,除非客戶發送一個Content-Length頭。(HTTP 1.1新) 412 - Precondition Failed 前置條件失敗;   請求頭中指定的一些前提條件失敗(HTTP請求頭中指定的一些前提條件失敗(HTTP 1.1新)。 413 – Request Entity Too Large 響應實體太大;
  目標文檔的大小超過服務器當前願意處理的大小。若是服務器認爲本身可以稍後再處理該請求,則應該提供一個Retry-After頭(HTTP 1.1新)。 414 - Request URI Too Long 請求URI太長;   被提供的URI對服務器的處理來講太長。常常出如今太多被編碼的數據被做爲查詢字符串的GET請求的結果,所以須要被轉換爲POST請求。(HTTP 1.1新)。 415 – 不支持的媒體類型。   請求實體的媒體類型不被服務器或者資源支持。例如,客戶端上傳一個image/svg+xml的圖片,可是服務器須要圖片使用不一樣的格式 416 – Requested Range Not Satisfiable 請求範圍不能知足;   服務器不能知足客戶在請求中指定的Range頭。(HTTP 1.1新) 417 – 執行失敗。
  服務器指望請求頭字段的要求。
418 - 我是一個茶壺;   這個代碼是在1998年做爲傳統的IETF April Fools‘ jokes被定義的在RFC2324,超文本咖啡罐控制協議,可是並無被實際的HTTP服務器實現。RFC指定了這個代碼應該是由茶罐返回給速溶咖啡。 419 - 認證超時;   並非HTTP標註的一部分,419認證超時表示之前的有效證實已經失效了。同時也被用於401未認證的替代選擇爲了從其它被拒絕訪問的已認證客戶端中指定服務器的資源。 420 - 方法失效;   不是HTTP的標準,可是被Spring定義在HTTP狀態類中當方法失時使用。這個狀態碼已經不推薦在Spring中使用。421 - 誤導請求;   請求被直接定向到不能產生響應的服務器上(例如由於一個鏈接的複用)。 422 - 不可處理的實體(WebDAV)   請求符合要求可是不能接受錯誤因爲語法錯誤。 423 - 鎖定的   資源訪問被鎖定。 424 - 失敗的依賴   請求因爲上一個請求的失敗而失敗。 426 - 須要升級   客戶端應該切換不一樣的協議例如TLS/1.0在指定的升級的頭字段裏。 428 - 須要前置條件   原始服務器須要有條件的請求。當客戶端GET一個資源的狀態的時候,同時又PUT回給服務器,與此同時第三方修改狀態到服務器上的時候,爲了不丟失更新的問題發生將會致使衝突。 429 - 過多請求   用戶已經發送了太多的請求在指定的時間裏。用於限制速率。 431 - 請求頭部字段太大   服務器因爲一個單獨的請求頭部字段或者是所有的字段太大而不肯意處理請求。 440 - 登錄超時(微軟)   一個微軟的擴展,意味着你的會話已經超時。 444 - 無響應   被使用在Nginx的日誌中代表服務器沒有返回信息給客戶端而且關閉了鏈接(在威懾惡意軟件的時候比較有用)。 449 - 重試(微軟)   一個微軟的擴展。請求應該在執行適當的動做以後被重試。 450 - 被Windows家長控制阻塞(微軟)   一個微軟的擴展。這個錯誤是當Windows家長控制打開而且阻塞指定網頁的訪問的時候被指定。 451 - 因爲法律緣由而無效(因特網草稿)   被定義在因特網草稿「一個新的HTTP狀態碼用於法律限制的資源」。被用於當資源的訪問因爲法律緣由被禁止的時候。例如檢查制度或者是政府強制要求禁止訪問。一個例子是1953年dystopian的小說Fahrenheit 451就是一個非法的資源。 451 - 重定向(微軟)   被用在Exchange ActiveSync中若是一個更有效的服務器可以被使用或者是服務器不能訪問用戶的郵箱。   客戶端會假定從新執行HTTP自動發現協議去尋找更適合的服務器。 494 - 請求頭太大(Nginx)   Nginx內置代碼和431相似,可是是被更早地引入在版本0.9.4(在2011年1月21日)。 495 - 證書錯誤(Nginx)   Nginx內置的代碼,當使用SSL客戶端證書的時候錯誤會出現爲了在日誌錯誤中區分它和4XX和一個錯誤頁面的重定向。。 496 - 沒有證書(Nginx)   Nginx內置的代碼,當客戶端不能提供證書在日誌中分辨4XX和一個錯誤頁面的重定向。 497 - HTTP到HTTPS(Nginx)   Nginx內置的代碼,被用於原始的HTTP的請求發送給HTTPS端口去分辨4XX在日誌中和一個錯誤頁面的重定向。 498 - 令牌超時或失效(Esri)   由ArcGIS for Server返回。這個代碼意味着令牌的超時或者是失效。 499 - 客戶端關閉請求(Nginx)   被用在Nginx日誌去代表一個鏈接已經被客戶端關閉當服務器仍然正在處理它的請求,是的服務器沒法返貨狀態碼。 499 - 須要令牌(Esri)   由ArcGIS for Server返回。意味着須要一個令牌(若是沒有令牌被提交)。 5xx - 服務器錯誤   服務器因爲遇到錯誤而不能完成該請求。
500 - Internal Server Error 服務器內部錯誤;   服務器遇到了意料不到的狀況,不能完成客戶的請求。 500.12 - 應用程序正忙於在 Web 服務器上從新啓動。 500.13 - Web 服務器太忙。 500.15 - 不容許直接請求 Global.asa。 500.16 – UNC 受權憑據不正確。
  這個錯誤代碼爲 IIS 6.0 所專用。 500.18 – URL 受權存儲不能打開。
  這個錯誤代碼爲 IIS 6.0 所專用。 500.100 - 內部 ASP 錯誤。 501 -
Not Implemented 沒有實現;   服務器不支持實現請求所須要的功能,頁眉值指定了未實現的配置。例如,客戶發出了一個服務器不支持的PUT請求。服務器不支持實現請求所須要的功能,頁眉值指定了未實現的配置。例如,客戶發出了一個服務器不支持的PUT請求。 502 - Bad Gateway 錯誤的網關;   服務器做爲網關或者代理時,爲了完成請求訪問下一個服務器,但該服務器返回了非法的應答。 亦說Web 服務器用做網關或代理服務器時收到了無效響應。 502.1 - CGI 應用程序超時。 502.2 - CGI 應用程序出錯。 503 - Service Unavailable 服務不可用;   服務器因爲維護或者負載太重未能應答。
  例如,Servlet可能在數據庫鏈接池已滿的狀況下返回503。服務器返回503時能夠提供一個服務器因爲維護或者負載太重未能應答。例如,Servlet可能在數據庫鏈接池已滿的狀況下返回503。服務器返回503時能夠提供一個 Retry
-After頭。這個錯誤代碼爲 IIS 6.0 所專用。 504 - Gateway Timeout 網關超時;   由做爲代理或網關的服務器使用,表示不能及時地從遠程服務器得到應答。(HTTP由做爲代理或網關的服務器使用,表示不能及時地從遠程服務器得到應答。(HTTP 1.1新) 。 505 - HTTP Version Not Supported http版本不支持;   服務器不支持請求中所指明的HTTP版本。(HTTP 1.1新)。 506 - 變量也是導航   對於請求是透明的內容導航致使循環參照。 507 - 存儲不足   服務器不能存儲須要的內容去完成請求。 508 - 發現環路   服務器發現了一個無限的循環檔處理請求的時候。 509 - 頻帶寬度超出限制(Apache的擴展)   這個狀態碼沒有在任何RFCS中指定。使用方法是未知的。 511 - 須要網絡受權   客戶端須要受權去火的網絡的訪問權限。通常用於代理交互中被用來進行網絡的訪問控制。 520 - 未知錯誤   這個狀態碼也沒有被指定在任何RFC中,而且只會被一些服務器返回,例如微軟的Azure和CloudFlare服務器:」520錯誤本質上是一個捕獲所有的響應當原始服務器返回一些未知的或者一些不能被忍受或者被解釋的(協議違反或者空響應)」。 598 - 網絡讀取超時異常(未知)   這個狀態碼也沒有在任何RFC中指定,可是被用在微軟的HTTP代理中去標註一個網絡讀取超時在一個客戶端以前的代理的後面。 599 - 網絡鏈接超時異常(未知)   這個狀態碼也沒有在任何RFC中指定,可是被用在微軟的HTTP代理中去標註一個網絡鏈接超時在一個客戶端以前的代理的後面。
相關文章
相關標籤/搜索