IIS 中的 HTTP 狀態碼

本文提供 Microsoft 網際網路資訊服務 (IIS) 中的超文字傳輸通訊協定 (HTTP) 狀態代碼清單。

原始產品版本:網際網路資訊服務
原始 KB 編號:943891

簡介

當您嘗試使用 HTTP 通訊協定存取執行 IIS 之伺服器上的內容時,IIS 會傳回數值碼,指出要求的結果和回應的語意,包括要求是否成功。

狀態碼的第一位數會定義回應的類別。 最後兩位數不具有任何分類角色。 第一位數有五個值:

記錄檔位置

HTTP 狀態代碼會記錄在 IIS 記錄檔中。 IIS 預設會將記錄檔放入 資料夾中: inetpub\logs\Logfiles。

此資料夾包含每個網站的個別目錄。 每天都會在目錄中建立記錄檔,而且預設會以日期命名。 例如,記錄檔可能會命名為 exYYMMDD.log。

HTTP 狀態碼

本節說明一些常見的 HTTP 狀態碼。

注意事項

本文並未列出 HTTP 規格中所指定的每個可能的 HTTP 狀態代碼。 例如,自訂網際網路伺服器 API (ISAPI) 篩選條件或自訂的 HTTP 模組可以設定自己的 HTTP 狀態代碼。

1xx - 資訊性

這些 HTTP 狀態碼指出在將最終回應傳送至用戶端電腦之前,用來傳達要求進度或狀態的過渡回應。

IIS 使用下列參考 HTTP 狀態代碼:

Code 描述 附註
100 繼續 已收到要求的初始部分,且尚未由伺服器拒絕。 伺服器打算在完全收到要求並採取行動之後傳送最終回應。
101 切換通訊協定 伺服器了解並願意遵守用戶端對所使用應用程式通訊協定進行變更的要求。

2xx - 成功

這些 HTTP 狀態碼表示伺服器已成功收到並接受用戶端的要求。

IIS 使用下列成功 HTTP 狀態代碼:

Code 描述 附註
200 確定 用戶端要求已成功處理。
201 建立 用戶端要求已完成,並已建立一或多個新資源。
202 已接受 用戶端要求已接受進行處理,但尚未完成處理。
203 非權威資訊 用戶端請求已成功,但隨附內容已根據來源伺服器的回應進行修改。
204 沒有內容 伺服器已成功處理該請求,且回應內容中沒有其他可傳送的內容。
205 重設內容 伺服器已完成此請求,並預期使用者代理程式將導致該請求送出的「文件檢視」重設為從來源伺服器接收時的原始狀態。
206 部分內容 伺服器已成功完成目標資源的範圍要求,方法是傳輸所選取表示法的一或多個部分。

3xx - 重新導向

這些 HTTP 狀態代碼表示用戶端瀏覽器必須採取更多動作來完成要求。 例如,用戶端瀏覽器可能必須要求伺服器上的不同頁面。 或者,用戶端瀏覽器可能必須使用 Proxy 伺服器重複要求。

IIS 會使用下列重新導向 HTTP 狀態代碼:

Code 描述 附註
301 已永久移轉 目標資源已獲指派新的永久 URI,而且未來對此資源的任何參考都應使用其中一個包含的 URI。
302 物件已移動 目標資源暫時位於不同的 URI 下。 由於重新導向有時可能會發生變更,因此用戶端在後續的請求中應繼續使用目標 URI
304 未修改 已收到條件式 GET 或 HEAD 請求;若不是因為條件評估結果為 false,本來會傳回 200(OK)回應。
307 暫時重新導向 用戶端瀏覽器要求已在快取中的文件。 而且該文件自被快取後就一直未被修改。 用戶端瀏覽器使用的是文件的快取副本,而不是從伺服器下載文件。

4xx - 用戶端錯誤

這些 HTTP 狀態代碼表示發生錯誤,且用戶端瀏覽器似乎出現錯誤。 例如,客戶端瀏覽器可能已要求不存在的頁面。 或者,客戶端瀏覽器可能尚未提供有效的驗證資訊。

IIS 使用下列用戶端錯誤 HTTP 狀態代碼:

Code 描述 附註
400 錯誤要求 伺服器因為語法不正確而無法理解要求。 用戶端不應該在沒有修改的情況下重複要求。 如需更多資訊,請參閱 IIS 中 HTTP 400 錯誤的疑難排解。
401 拒絕存取 由於缺少目標資源的有效驗證憑證,因此無法套用該請求。
403 禁止 伺服器已了解要求,但拒絕完成該要求。
404 找不到 原始伺服器找不到目標資源的目前表示法,或不願意揭露其存在。
405 不允許使用此方法 原始伺服器已知要求行中收到的方法,但目標資源不支援。
406 無法接受 用戶端瀏覽器不接受所要求資源的MIME類型。
408 請求逾時 伺服器未在準備等候的時間內收到完整的要求訊息。
412 前置條件失敗 在伺服器上測試時,請求標頭欄位中提供的一或多個條件被判定為 false。
413 請求實體過大 HTTP 要求承載太大。

400 - 錯誤的要求

超文本傳輸通訊協定堆疊 (Http.sys) 檔案會封鎖 IIS 處理要求,因為要求發生問題。 一般來說,這個 HTTP 狀態代碼表示要求包含不正確字元或順序,或是該要求與 Http.sys 檔案中的安全性設定不符。

IIS 會定義下列 HTTP 狀態代碼,指出錯誤 400 更具體的原因:

Code 描述
400.1 無效的目的地標頭
400.2 無效的深度標頭
400.3 無效的 If 標頭
400.4 無效的覆寫標頭
400.5 無效的轉譯標頭
400.6 無效的請求本文
400.7 無效的內容長度
400.8 無效的逾時
400.9 無效的鎖定權杖

自 Windows Server 2012 隨附的 IIS 8.0 以來,引進了下列 HTTP 子狀態代碼(目前不支援的操作系統):

Code 描述
400.10 無效的 X-Forwarded-For (XFF) 標頭
400.11 無效的 WebSocket 要求

應用程式要求路由 (ARR) 3.0.1916 版中引進了下列 HTTP 子狀態代碼:

Code 描述
400.601 用戶端要求錯誤 (ARR)
400.602 時間格式無效 (ARR)
400.603 解析範圍錯誤 (ARR)
400.604 用戶端已離線 (ARR)
400.605 最大轉寄次數 (ARR)
400.606 非同步競爭錯誤 (ARR)

401 - 拒絕存取

IIS 會定義數個 HTTP 狀態代碼,指出錯誤 401 的更具體原因。 下列的特定 HTTP 狀態代碼會顯示在用戶端瀏覽器中,但不會顯示在 IIS 記錄中:

Code 描述 附註
401.1 登入失敗 登入嘗試失敗的原因可能是使用者名稱或密碼無效。
401.2 伺服器設定導致登入失敗 這個 HTTP 狀態代碼表示伺服器上的驗證設定有問題。
401.3 因資源上的 ACL 而未獲授權 這個 HTTP 狀態代碼表示 NTFS 檔案系統許可權中的問題。 即使您嘗試存取的檔案的許可權正確,也可能會發生此問題。 例如,IUSR 帳戶若沒有 C:\Winnt\System32\Inetsrv 目錄的存取權限,就會發生這個問題。
401.4 授權因篩選器而失敗 網際網路伺服器應用程式開發介面 (ISAPI) 篩選條件不允許處理要求,因為發生授權問題。
401.5 ISAPI/CGI 應用程式的授權失敗 ISAPI 應用程式或通用閘道介面 (CGI) 應用程式不允許處理要求,因為發生授權問題。
401.501 存取遭拒:已達並行請求速率限制 動態IP限制:來自相同用戶端IP的並行要求太多。
401.502 存取遭拒:已達到請求速率限制上限 動態IP限制:達到指定時間限制內來自相同用戶端IP的要求數目上限。
401.503 存取遭拒:IP 位址已遭拒絕 IP 限制:用戶端 IP 位址會包含在拒絕清單中。
401.504 拒絕存取:主機名稱遭拒絕 IP 限制:用戶端主機名包含在拒絕清單中。

403 - 禁止

IIS 會定義下列 HTTP 狀態代碼,指出錯誤 403 的更具體原因:

Code 描述 附註
403.1 執行存取權限禁止 尚未授與適當層級的執行權限。
403.2 已禁止讀取權限 尚未授與適當層級的讀取權限。 確認您已設定 IIS,以將讀取許可權授與目錄。 此外,如果您使用預設文件,請檢查預設文件是否存在。
403.3 禁止寫入權限 未授予適當層級的寫入權限。 檢查 IIS 許可權和 NTFS 檔案系統許可權。 請確定其已設定為對該目錄授予「寫入」權限。
403.4 需要 SSL 透過非安全通道發出要求。 但 Web 應用程式需要安全通訊端層 (SSL) 連線。
403.5 需要 SSL 128 伺服器設定為需要 128 位元的 SSL 連線。 但卻未使用 128 位元加密來傳送要求。
403.6 IP 位址已被拒絕 伺服器設定為拒絕存取目前的 IP 位址。
403.7 需要用戶端憑證 伺服器設定為要求憑證進行用戶端驗證。 但用戶端瀏覽器並未安裝適當的用戶端憑證。 如需詳細資訊,請參閱 HTTP 錯誤 403.7。
403.8 拒絕網站存取 伺服器會設定為根據網域名稱系統 (DNS) 用戶端電腦名稱來拒絕要求。 如需詳細資訊,請參閱動態 IP 位址限制。
403.9 已超過並行連線上限 太多客戶端嘗試連線到網頁伺服器。
403.10 禁止:執行存取遭拒 網頁伺服器設定為拒絕「執行」存取。
403.11 禁止:密碼已變更 密碼已變更。
403.12 Mapper 存取遭拒 您要存取的頁面需要用戶端憑證。 不過,對應到用戶端憑證的使用者識別碼被拒絕存取該檔案。
403.13 已撤銷用戶端憑證 用戶端瀏覽器會嘗試使用已遭簽發該憑證的憑證授權單位撤銷的用戶端憑證。
403.14 拒絕顯示目錄清單 伺服器並未設定成顯示內容目錄清單,也未設定預設文件。 如需詳細資訊,請參閱 HTTP 錯誤 403.14。
403.15 用戶端存取授權數已超出上限 用戶端存取授權數目已超過網頁伺服器上的限制。
403.16 客戶端憑證不受信任或無效 用戶端瀏覽器嘗試使用無效的用戶端憑證。 或者執行 IIS 的伺服器不信任客戶端憑證。 如需詳細資訊,請參閱 HTTP 錯誤 403.16。
403.17 客戶端憑證已過期或尚未有效 用戶端瀏覽器嘗試使用已過期或尚未生效的用戶端憑證。
403.18 無法在目前的應用程式集區中執行要求的URL 已設定自訂錯誤頁面。 [客戶錯誤] 頁面的應用程式集區與所要求 URL 的應用程式集區不同。
403.19 無法針對此應用程式集區中的用戶端瀏覽器執行 CGI 應用程式 應用程式集區的識別身分未具備「取代處理程序層級權杖」權限。
403.20 禁止: Passport 登入失敗 不允許使用 Passport 登入的用戶端要求。
403.21 禁止:來源存取遭拒 不允許 WebDAV 對資源的原始程式碼要求。
403.22 禁止:不允許無限深度 不允許具有無限深度的 WebDAV 要求。
403.501 禁止:已達到並行請求速率限制 動態IP限制:來自相同用戶端IP的並行要求太多。
403.502 禁止存取:已達到請求頻率上限 動態IP限制:達到指定時間限制內來自相同用戶端IP的要求數目上限。
403.503 禁止存取:IP 位址已被拒絕 IP 限制:用戶端 IP 位址會包含在拒絕清單中。
403.504 禁止:主機名稱遭拒 IP 限制:用戶端主機名包含在拒絕清單中。

404 - 找不到

IIS 會定義下列 HTTP 狀態代碼,指出錯誤 404 更具體的原因:

Code 描述 附註
404.0 找不到 您嘗試存取的檔案已移至他處或不存在。
404.1 找不到網站 要求的網站不存在。
404.2 ISAPI 或 CGI 限制。 要求的 ISAPI 資源或要求的 CGI 資源在電腦上受到限制。 如需詳細資訊,請參閱 HTTP 錯誤 404.2。
404.3 MIME 類型限制。 所要求副檔名類型的目前 MIME 對應無效或尚未設定。
404.4 未設定處理常式。 所要求 URL 的檔案名稱延伸不具備設定為處理網頁伺服器上之要求的處理常式。
404.5 因要求篩選設定而遭拒。 要求的 URL 包含伺服器所封鎖的字元順序。
404.6 Verb 遭拒絕。 該要求是透過使用未設定或不正確 HTTP 動詞進行的。
404.7 檔案副檔名已遭拒絕。 不允許使用所要求的檔案副檔名。
404.8 隱藏的命名空間。 因為目錄已隱藏,所以要求的 URL 遭拒絕。
404.9 檔案屬性隱藏。 所要求的檔案是隱藏的。 欲了解更多資訊,請參閱 HTTP 錯誤 404.9 - 未找到。
404.10 請求標頭過長。 因為要求標頭過長,所以要求遭到拒絕。
404.11 請求包含雙重跳脫序列。 該請求包含雙重跳脫序列。
404.12 要求包含高位元字元。 要求包含高位元字元,而伺服器設定為不允許高位元字元。
404.13 內容太長。 要求包含 Content-Length 標頭。 標頭的值大於 Content-Length 伺服器所允許的限制。 如需詳細資訊,請參閱 HTTP 錯誤 404.13 - CONTENT_LENGTH_TOO_LARGE。
404.14 請求 URL 太長。 要求的 URL 超過伺服器允許的限制。
404.15 查詢字串太長。 要求包含超過伺服器所允許限制的查詢字串。
404.16 傳送至靜態檔案處理程式的 WebDAV 要求 WebDAV 要求未由 WebDAV 功能處理,而且已傳送至靜態檔案處理程式。
404.17 對應至靜態檔案處理程序的動態內容 如需詳細資訊,請參閱 HTTP 錯誤 404.17 - 找不到檔案。
404.18 查詢字串序列遭拒 要求包含不允許的查詢字串序列。
404.19 遭到篩選規則拒絕 由於請求篩選規則,該請求已遭拒絕。
404.20 URL 區段太多 要求包含太多 URL 區段。
404.501 找不到:並行請求速率限制已達上限 動態IP限制:來自相同用戶端IP的並行要求太多。
404.502 找不到:已達到請求頻率上限 動態IP限制:達到指定時間限制內來自相同用戶端IP的要求數目上限。
404.503 找不到:IP 位址遭拒 IP 限制:用戶端 IP 位址會包含在拒絕清單中。
404.504 找不到:主機名稱被拒絕 IP 限制:用戶端主機名包含在拒絕清單中。

405、406、408、412 和 413

Code 描述 附註
405.0 不允許使用此方法。 要求是使用不正確 HTTP 方法進行的。 如需詳細資訊,請參閱 HTTP 錯誤 405.0。
406.0 無法接受。 要求是使用 Accept 包含無效 MIME 值的標頭進行的。
408.0 要求已逾時。 伺服器未在準備等候的時間內收到完整的要求訊息。
412.0 先決條件失敗。 要求是使用 If-Match 包含無效值的要求標頭進行的。
413.0 請求實體過大。 此請求是因使用過大的酬載而提出。

5xx - 伺服器錯誤

5xx HTTP 狀態碼表示伺服器由於發生錯誤而無法完成要求。

IIS 使用下列伺服器錯誤 HTTP 狀態代碼:

Code 描述 附註
500 內部伺服器錯誤。 伺服器遇到非預期的情況,導致無法完成要求。
501 標頭值指定的設定尚未實作 伺服器不支持滿足要求所需的功能。
502 網頁伺服器做為閘道或 Proxy 時收到無效的回應 做為閘道或 Proxy 的伺服器嘗試完成要求時,從存取的內送伺服器收到無效的回應。 如需更多資訊,請參閱 ARR 中 502 錯誤的疑難排解。
503 服務無法使用 由於伺服器目前暫時超載或在進行排程維護,因此無法處理要求,該情況可能會在些許延遲之後減輕。

500 - 內部伺服器錯誤

IIS 會定義下列 HTTP 狀態代碼,指出錯誤 500 的更具體原因:

Code 描述 附註
500.0 發生模組或 ISAPI 錯誤。 這種 HTTP 狀態代碼可能由於多種伺服器端原因導致。 如需詳細資訊,請參閱 HTTP 錯誤 500.0 - 內部伺服器錯誤。
500.11 網頁伺服器上的應用程式正在關閉。 因為目的地應用程式集區正在關閉,所以未處理要求。 請等待工作處理序完成關閉,然後再試一次該要求。 如果問題持續發生,Web 應用程式可能會遇到阻礙 Web 應用程式正確關閉的問題。
500.12 應用程式忙於在網頁伺服器上重新啟動。 因為目的地應用程式集區正在重新啟動,所以未處理要求。 當您重新整理頁面時,這個 HTTP 狀態代碼應該會消失。 如果在您重新整理頁面後,此 HTTP 狀態代碼再次出現,則表示問題可能是掃描 Global.asa 檔案的防毒軟體所造成。 如果問題持續發生,Web 應用程式可能會遇到阻礙 Web 應用程式正確重新啟動的問題。
500.13 網頁伺服器太忙碌。 未處理要求,因為伺服器太忙碌,無法接受任何新的傳入要求。 一般而言,此 HTTP 狀態代碼表示連入並行要求的數目超過 IIS Web 應用程式可以處理的數目。 當設定效能組態設定太低、硬體不足或 IIS Web 應用程式中發生瓶頸時,可能會發生此問題。 常見的疑難解答方法是在發生錯誤時產生 IIS 進程的記憶體轉儲檔案,然後偵錯記憶體轉儲檔案。
500.15 不允許直接對 Global.asax 發出請求。 已直接要求存取 Global.asa 檔案或 Global.asax 檔案。
500.19 設定資料無效。 出現這個 HTTP 狀態代碼的原因是相關聯的 applicationhost.config 檔案或相關聯的 Web.config 檔案中發生問題。 如需詳細資訊,請參閱 HTTP 錯誤 500.19。
500.21 無法辨識的模組。
500.22 ASP.NET httpModules 設定不適用於受控管線模式。
500.23 ASP.NET httpHandlers 設定不適用於受控管線模式。
500.24 ASP.NET 模擬設定不適用於受控管線模式。
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 錯誤。 處理動態伺服器網頁 (ASP) 頁面時發生錯誤。 若要取得關於錯誤的詳細資訊,請在網頁瀏覽器中停用易記的 HTTP 錯誤訊息。 此外,IIS 記錄檔可能會顯示一個 ASP 錯誤編號,該錯誤編號會對應至所發生的錯誤。

502 - 錯誤的閘道

IIS 會定義下列 HTTP 狀態代碼,指出錯誤 502 的更具體原因:

Code 描述
502.1 CGI 應用程式逾時。
502.2 閘道錯誤:過早退出。
502.3 錯誤的閘道:轉寄站連線錯誤 (ARR)。
502.4 錯誤的閘道:沒有伺服器 (ARR)。

應用程式要求路由 (ARR) 3.0.1916 版中會新增下列 HTTP 狀態代碼:

Code 描述
502.2 地圖請求失敗 (ARR)
502.3 WinHTTP 非同步完成失敗 (ARR)
502.4 沒有伺服器 (ARR)
502.5 WebSocket 失敗 (ARR)
502.6 轉送的請求失敗 (ARR)
502.7 執行要求失敗 (ARR)

503 - 服務無法使用

IIS 會定義下列 HTTP 狀態代碼,指出錯誤 503 的更具體原因:

Code 描述 附註
503.0 應用程式集區無法使用 該要求已傳送至目前已停止或停用的應用程式集區。 若要解決此問題,請確定目的地應用程式集區已啟動。 事件記錄檔可能會提供應用程式集區停止或停用原因的相關資訊。
503.2 超出同時請求數量上限。 此 appConcurrentRequestLimit 屬性設為低於目前並行要求數目的值。 IIS 不允許比 屬性的值 appConcurrentRequestLimit 更多的並行要求。
503.3 ASP.NET 佇列已滿
503.4 FastCGI 佇列已滿

其他相關資訊

協力廠商資訊免責聲明

本文提及的協力廠商產品是由與 Microsoft 無關的獨立廠商所製造。 Microsoft 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。