1. 程式人生 > >Http status code 狀態碼

Http status code 狀態碼

HTTP 狀態程式碼

本部分描述 HTTP IIS 7.0 使用的 HTTP 狀態程式碼。

注意本文不會列出 HTTP 規範中所述的每個可能的 HTTP 狀態程式碼。本文只包括 IIS 7.0 可以傳送的 HTTP 狀態程式碼。例如,自定義 Internet Server API (ISAPI) 篩選器或自定義 HTTP 模組可以設定其自己的 HTTP 狀態程式碼。

1xx - 資訊

這些 HTTP 狀態程式碼表示臨時的響應。客戶端在收到常規響應之前,應準備接收一個或多個 1xx 響應。

IIS 7.0 使用以下資訊 HTTP 狀態程式碼:
  • 100 - 繼續。
  • 101 - 切換協議。

2xx - 成功

這些 HTTP 狀態程式碼表明伺服器成功地接受了請求。


IIS 7.0 使用以下成功 HTTP 狀態程式碼:
  • 200 - 確定。客戶端請求已成功。
  • 201 - 已建立。
  • 202 - 已接受。
  • 203 - 非授權資訊。
  • 204 - 無內容。
  • 205 - 重置內容。
  • 206 - 部分內容。

3xx - 重定向

這些 HTTP 狀態程式碼表明客戶端瀏覽器必須採取更多操作來實現請求。例如,客戶端瀏覽器可能必須請求伺服器上的不同頁。或者,客戶端瀏覽器可能必須通過使用代理伺服器重複請求。

IIS 7.0 使用以下重定向 HTTP 狀態程式碼:
  • 301 - 已被永遠移走。
  • 302 - 物件已移動。
  • 304 - 未修改。
  • 307 - 臨時重定向。

4xx - 客戶端錯誤

這些 HTTP 狀態程式碼表示發生錯誤,客戶端似乎有問題。例如,客戶端瀏覽器可能已請求不存在的頁。或者,客戶端未提供有效的身份驗證資訊。


IIS 7.0 使用以下客戶端錯誤 HTTP 狀態程式碼:
  • 400 - 錯誤的請求。由於語法格式不正確,伺服器無法理解該請求。客戶端不應在未經修改的情況下重複請求。

    IIS 7.0 定義以下 HTTP 狀態程式碼,表明 400 錯誤的具體原因:
    • 400.1 - 無效的目的標頭。
    • 400.2 - 無效的深度標頭。
    • 400.3 - 無效的如果標頭。
    • 400.4 - 無效的覆蓋標頭。
    • 400.5 - 無效的轉換標頭。
    • 400.6 - 無效的請求正文。
    • 400.7 - 無效的內容長度。
    • 400.8 - 無效的超時值。
    • 400.9 - 無效的鎖定令牌。
  • 401 - 訪問被拒絕。

    IIS 7.0 定義幾個 HTTP 狀態程式碼,表明 401 錯誤的具體原因:以下特定的 HTTP 狀態程式碼顯示在客戶端瀏覽器中,但是不會顯示在 IIS 日誌中:
    • 401.1 - 登入失敗。
    • 401.2 - 伺服器配置導致登入失敗。
    • 401.3 - 由於 ACL 對資源的限制而未獲得授權。
    • 401.4 - 篩選器授權失敗。
    • 401.5 - ISAPI/CGI 應用程式授權失敗。
  • 403 - 禁止訪問:

    IIS 7.0 定義以下 HTTP 狀態程式碼,表明 403 錯誤的具體原因:
    • 403.1 - 執行訪問被禁止。
    • 403.2 - 讀訪問被禁止。
    • 403.3 - 寫訪問被禁止。
    • 403.4 - 要求 SSL。
    • 403.5 - 要求 SSL 128。
    • 403.6 - IP 地址被拒絕。
    • 403.7 - 要求客戶端證書。
    • 403.8 - 站點訪問被拒絕。
    • 403.9 - 禁止:許多客戶端嘗試連線到 Web 伺服器。
    • 403.10 - 禁止訪問:配置 Web 伺服器為拒絕執行訪問。
    • 403.11 - 禁止訪問:密碼已更改。
    • 403.12 - 拒絕訪問對映表。
    • 403.13 - 客戶端證書被吊銷。
    • 403.14 - 拒絕目錄列表。
    • 403.15 - 禁止訪問:客戶端訪問許可證已超出 Web 伺服器上的限制。
    • 403.16 - 客戶端證書不受信任或無效。
    • 403.17 - 客戶端證書已過期或尚未生效。
    • 403.18 - 在當前的應用程式池中不能執行所請求的 URL。
    • 403.19 - 在此應用程式池中不能執行客戶端的 CGI 應用程式。
    • 403.20 - 禁止訪問:護照登入失敗。
    • 403.21 - 禁止訪問:拒絕源訪問。
    • 403.22 - 禁止訪問:拒絕無限深度。
    • 403.502 - 禁止訪問:太多請求來自同一客戶端 IP;已達到動態 IP 限制的限制。
  • 404 - 未找到。

    IIS 7.0 定義以下 HTTP 狀態程式碼,表明 404 錯誤的具體原因:
    • 404.0 - 未找到。
    • 404.1 - 站點未找到。
    • 404.2 - ISAPI 或 CGI 限制。
    • 404.3 - MIME 型別限制。
    • 404.4 - 未配置處理程式。
    • 404.5 - 被請求篩選器配置拒絕。
    • 404.6 - 動詞被拒絕。
    • 404.7 - 副檔名被拒絕。
    • 404.8 - 隱藏的名稱空間。
    • 404.9 - 檔案屬性被隱藏。
    • 404.10 - 請求標頭太長。
    • 404.11 - 請求包含雙轉義序列。
    • 404.12 - 請求包含高位字元。
    • 404.13 - 內容長度太大。
    • 404.14 - 請求 URL 太長。
    • 404.15 - 查詢字串太長。
    • 404.16 - 傳送到靜態檔案處理程式的 DAV 請求。
    • 404.17 - 動態內容通過萬用字元 MIME 對映對映到靜態檔案處理程式。
    • 404.18 - 查詢字串序列被拒絕。
    • 404.19 - 被篩選規則拒絕。
    • 404.20 - URL 段太多
  • 405 - 不允許的方法。
  • 406 - 客戶端瀏覽器不接受所請求頁面的 MIME 型別。
  • 408 - 請求超時。
  • 412 - 前提條件失敗。

5xx - 伺服器錯誤

這些 HTTP 狀態程式碼表明由於伺服器遇到錯誤,因此無法完成請求。

IIS 7.0 使用以下伺服器錯誤 HTTP 狀態程式碼:
  • 500 - 內部伺服器錯誤。

    IIS 7.0 定義以下 HTTP 狀態程式碼,表明 500 錯誤的具體原因:
    • 500.0 - 發生模組或 ISAPI 錯誤。
    • 500.11 - 正在 Web 伺服器上關閉應用程式。
    • 500.12 - 應用程式正忙於在 Web 伺服器上重新啟動。
    • 500.13 - Web 伺服器太忙。
    • 500.15 - 不允許直接請求 Global.asax。
    • 500.19 - 配置資料無效。
    • 500.21 - 模組無法識別。
    • 500.22 - 無法在託管管道模式下應用 ASP.NET httpModules 配置。
    • 500.23 - 無法在託管管道模式下應用 ASP.NET httpHandlers 配置。
    • 500.24 - 無法在託管管道模式下應用 ASP.NET impersonation 配置。
    • 500.50 - RQ_BEGIN_REQUEST 通知處理期間,發生重寫錯誤。發生配置或入站規則執行錯誤。 注意此處是為入站和出站規則讀取分佈規則配置的地方。
    • 500.51 - GL_PRE_BEGIN_REQUEST 通知處理期間,發生重寫錯誤。發生全域性配置或全域性規則執行錯誤。 注意此處是讀取全域性規則配置的地方。
    • 500.52 - RQ_SEND_RESPONSE 通知處理期間,發生重寫錯誤。發生出站規則執行。
    • 500.53 - RQ_RELEASE_REQUEST_STATE 通知處理期間,發生重寫錯誤。發生出站規則執行錯誤。此規則配置為在更新輸出使用者快取之前執行。
    • 500.100 - 內部 ASP 錯誤。
  • 501 - 頁首值指定了未實現的配置。
  • 502 - Web 伺服器用作閘道器或代理伺服器時收到了無效響應。

    IIS 7.0 定義以下 HTTP 狀態程式碼,表明 502 錯誤的具體原因:
    • 502.1 - CGI 應用程式超時。
    • 502.2 - 閘道器錯誤:過早退出。
    • 502.3 - 閘道器錯誤:轉發器連線錯誤 (ARR)。
    • 502.4 - 閘道器錯誤:無伺服器 (ARR)。
  • 503 - 服務不可用。

    IIS 7.0 定義以下 HTTP 狀態程式碼,表明 503 錯誤的具體原因:
    • 503.0 - 應用程式池不可用。
    • 503.2 - 超出併發請求限制。
    • 503.3 - ASP.NET 佇列已滿
---------------------------------------------------- 常見HTTP狀態碼


200 OK
301 Moved Permanently
302 Found
304 Not Modified
307 Temporary Redirect
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
410 Gone
500 Internal Server Error
501 Not Implemented
100 Continue
  初始的請求已經接受,客戶應當繼續傳送請求的其餘部分


101 Switching Protocols
  伺服器將遵從客戶的請求轉換到另外一種協議


200 OK
  一切正常,對GET和POST請求的應答文件跟在後面


201 Created
  伺服器已經建立了文件,Location頭給出了它的URL。


202 Accepted
  已經接受請求,但處理尚未完成。


203 Non-Authoritative Information
  文件已經正常地返回,但一些應答頭可能不正確,因為使用的是文件的拷貝


204 No Content
  沒有新文件,瀏覽器應該繼續顯示原來的文件。如果使用者定期地重新整理頁面,而Servlet可以確定使用者文件足夠新,這個狀態程式碼是很有用的


205 Reset Content
  沒有新的內容,但瀏覽器應該重置它所顯示的內容。用來強制瀏覽器清除表單輸入內容


206 Partial Content
  客戶傳送了一個帶有Range頭的GET請求,伺服器完成了它


300 Multiple Choices
  客戶請求的文件可以在多個位置找到,這些位置已經在返回的文件內列出。如果伺服器要提出優先選擇,則應該在Location應答頭指明。


301 Moved Permanently
  客戶請求的文件在其他地方,新的URL在Location頭中給出,瀏覽器應該自動地訪問新的URL。


302 Found
  類似於301,但新的URL應該被視為臨時性的替代,而不是永久性的。


303 See Other
  類似於301/302,不同之處在於,如果原來的請求是POST,Location頭指定的重定向目標文件應該通過GET提取


304 Not Modified
  客戶端有緩衝的文件併發出了一個條件性的請求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文件)。伺服器告訴客戶,原來緩衝的文件還可以繼續使用。


305 Use Proxy
  客戶請求的文件應該通過Location頭所指明的代理伺服器提取


307 Temporary Redirect
  和302(Found)相同。許多瀏覽器會錯誤地響應302應答進行重定向,即使原來的請求是 POST,即使它實際上只能在POST請求的應答是303時才能重定向。由於這個原因,HTTP 1.1新增了307,以便更加清除地區分幾個狀態程式碼: 當出現303應答時,瀏覽器可以跟隨重定向的GET和POST請求;如果是307應答,則瀏覽器只能跟隨對GET請求的重定向。


400 Bad Request
  請求出現語法錯誤。


401 Unauthorized
  客戶試圖未經授權訪問受密碼保護的頁面。應答中會包含一個WWW-Authenticate頭,瀏覽器據此顯示使用者名稱字/密碼對話方塊,然後在填寫合適的Authorization頭後再次發出請求。


403 Forbidden
  資源不可用。


404 Not Found
  無法找到指定位置的資源


405 Method Not Allowed
  請求方法(GET、POST、HEAD、Delete、PUT、TRACE等)對指定的資源不適用。


406 Not Acceptable
  指定的資源已經找到,但它的MIME型別和客戶在Accpet頭中所指定的不相容


407 Proxy Authentication Required
  類似於401,表示客戶必須先經過代理伺服器的授權。


408 Request Timeout
  在伺服器許可的等待時間內,客戶一直沒有發出任何請求。客戶可以在以後重複同一請求。


409 Conflict
  通常和PUT請求有關。由於請求和資源的當前狀態相沖突,因此請求不能成功。


410 Gone
  所請求的文件已經不再可用,而且伺服器不知道應該重定向到哪一個地址。它和404的不同在於,返回407表示文件永久地離開了指定的位置,而404表示由於未知的原因文件不可用。


411 Length Required
  伺服器不能處理請求,除非客戶傳送一個Content-Length頭。


412 Precondition Failed
  請求頭中指定的一些前提條件失敗


413 Request Entity Too Large
  目標文件的大小超過伺服器當前願意處理的大小。如果伺服器認為自己能夠稍後再處理該請求,則應該提供一個Retry-After頭


414 Request URI Too Long
  URI太長


416 Requested Range Not Satisfiable
  伺服器不能滿足客戶在請求中指定的Range頭


500 Internal Server Error
  伺服器遇到了意料不到的情況,不能完成客戶的請求


501 Not Implemented
  伺服器不支援實現請求所需要的功能。例如,客戶發出了一個伺服器不支援的PUT請求


502 Bad Gateway
  伺服器作為閘道器或者代理時,為了完成請求訪問下一個伺服器,但該伺服器返回了非法的應答


503 Service Unavailable
  伺服器由於維護或者負載過重未能應答。例如,Servlet可能在資料庫連線池已滿的情況下返回503。伺服器返回503時可以提供一個Retry-After頭


504 Gateway Timeout
  由作為代理或閘道器的伺服器使用,表示不能及時地從遠端伺服器獲得應答


505 HTTP Version Not Supported
  伺服器不支援請求中所指明的HTTP版本