HTTP 状态代码及其定义
Web服务器响应浏览器或其他客户程序的请求时,其应答一般由以下几个部分组成:一个状态行,几个应答头,一个空行,内容文档。下面是一个最简单的应答:
引用内容:
HTTP/1.1 200 OK
Content-Type: text/plain
Hello World
状态行包含HTTP版本、状态代码、与状态代码对应的简短说明信息。在大多数情况下,除了Content-Type之外的所有应答头都是可选的。但Content-Type是必需的,它描述的是后面文档的MIME类型。虽然大多数应答都包含一个文档,但也有一些不包含,例如对HEAD请求的应答永远不会附带文档。有许多状态代码实际上用来标识一次失败的请求,这些应答也不包含文档(或只包含一个简短的错误信息说明)。
当用户试图通过 HTTP 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字代码。状态代码可以指明具体请求是否已成功,还可以揭示请求失败的确切原因。
1xx - 信息提示
这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应。 ? 100 - 继续。
? 101 - 切换协议。
2xx - 成功
这类状态代码表明服务器成功地接受了客户端请求。
? 200 - 确定。客户端请求已成功。
? 201 - 已创建。
? 202 - 已接受。
? 203 - 非权威性信息。
? 204 - 无内容。
? 205 - 重置内容。
? 206 - 部分内容。
3xx - 重定向
客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。
? 302 - 对象已移动。
? 304 - 未修改。
? 307 - 临时重定向。
4xx - 客户端错误
发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。
? 400 - 错误的请求。
? 401 - 访问被拒绝。IIS 定义了许多不同的 401 错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在 IIS 日志中显示:
? 401.1 - 登录失败。
? 401.2 - 服务器配置导致登录失败。
? 401.3 - 由于 ACL 对资源的限制而未获得授权。
? 401.4 - 筛选器授权失败。
? 401.5 - ISAPI/CGI 应用程序授权失败。
? 401.7 – 访问被 Web 服务器上的 URL 授权策略拒绝。这个错误代码为 IIS 6.0 所专用。
? 403 - 禁止访问:IIS 定义了许多不同的 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。这个错误代码为 IIS 6.0 所专用。
? 403.19 - 不能为这个应用程序池中的客户端执行 CGI。这个错误代码为 IIS 6.0 所专用。
? 403.20 - Passport 登录失败。这个错误代码为 IIS 6.0 所专用。
? 404 - 未找到。
? 404.0 -(无) – 没有找到文件或目录。
? 404.1 - 无法在所请求的端口上访问 Web 站点。
? 404.2 - Web 服务扩展锁定策略阻止本请求。
? 404.3 - MIME 映射策略阻止本请求。
? 405 - 用来访问本页面的 HTTP 谓词不被允许(方法不被允许)
? 406 - 客户端浏览器不接受所请求页面的 MIME 类型。
? 407 - 要求进行代理身份验证。
? 412 - 前提条件失败。
? 413 – 请求实体太大。
? 414 - 请求 URI 太长。
? 415 – 不支持的媒体类型。
? 416 – 所请求的范围无法满足。
? 417 – 执行失败。
? 423 – 锁定的错误。
5xx - 服务器错误
服务器由于遇到错误而不能完成该请求。
? 500 - 内部服务器错误。
? 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 - 页眉值指定了未实现的配置。
? 502 - Web 服务器用作网关或代理服务器时收到了无效响应。? 502.1 - CGI 应用程序超时。
? 502.2 - CGI 应用程序出错。
? 503 - 服务不可用。这个错误代码为 IIS 6.0 所专用。
? 504 - 网关超时。
? 505 - HTTP 版本不受支持。
常见的 HTTP 状态代码及其原因
? 200 - 成功。 此状态代码表示 IIS 已成功处理请求。
? 304 - 未修改。 客户端请求的文档已在其缓存中,文档自缓存以来尚未被修改过。客户端使用文档的缓存副本,而不从服务器下载文档。
? 401.1 - 登录失败。 登录尝试不成功,可能因为用户名或密码无效。
? 401.3 - 由于 ACL 对资源的限制而未获得授权。 这表示存在 NTFS 权限问题。即使您对试图访问的文件具备相应的权限,也可能发生此错误。
? 403.1 - 执行访问被禁止。
下面是导致此错误信息的两个常见原因:
? 您没有足够的执行许可。例如,如果试图访问的 ASP 页所在的目录权限设为“无”,或者,试图执行的 CGI 脚本所在的目录权限为“只允许脚本”,将出现此错误信息。若要修改执行权限,请在 Microsoft 管理控制台 (MMC) 中右击目录,然后依次单击属性和目录选项卡,确保为试图访问的内容设置适当的执行权限。
? 您没有将试图执行的文件类型的脚本映射设置为识别所使用的谓词(例如,GET 或 POST)。若要验证这一点,请在 MMC 中右击目录,依次单击属性、目录选项卡和配置,然后验证相应文件类型的脚本映射是否设置为允许所使用的谓词。
? 403.2 - 读访问被禁止。验证是否已将 IIS 设置为允许对目录进行读访问。另外,如果您正在使用默认文件,请验证该文件是否存在。
? 403.3 - 写访问被禁止。 验证 IIS 权限和 NTFS 权限是否已设置以便向该目录授予写访问权。
? 403.4 - 要求 SSL。禁用要求安全通道选项,或使用 HTTPS 代替 HTTP 来访问该页面。
? 403.5 - 要求 SSL 128。禁用要求 128 位加密选项,或使用支持 128 位加密的浏览器以查看该页面。
? 403.6 - IP 地址被拒绝。您已把您的服务器配置为拒绝访问您目前的 IP 地址。
? 403.7 - 要求客户端证书。您已把您的服务器配置为要求客户端身份验证证书,但您未安装有效的客户端证书。
? 403.8 - 站点访问被拒绝。您已为您用来访问服务器的域设置了域名限制。
? 403.9 - 用户数过多。与该服务器连接的用户数量超过了您设置的连接限制。
注意:Microsoft Windows 2000 Professional 和 Microsoft Windows XP Professional 自动设置了在 IIS 上最多 10 个连接的限制。您无法更改此限制。
? 403.12 - 拒绝访问映射表。 您要访问的页面要求提供客户端证书,但映射到您的客户端证书的用户 ID 已被拒绝访问该文件。
? 404 - 未找到。 发生此错误的原因是您试图访问的文件已被移走或删除。如果在安装 URLScan 工具之后,试图访问带有有限扩展名的文件,也会发生此错误。这种情况下,该请求的日志文件项中将出现“Rejected by URLScan”的字样。
? 500 - 内部服务器错误。 很多服务器端的错误都可能导致该错误信息。事件查看器日志包含更详细的错误原因。此外,您可以禁用友好 HTTP 错误信息以便收到详细的错误说明。
? 500.12 - 应用程序正在重新启动。 这表示您在 IIS 重新启动应用程序的过程中试图加载 ASP 页。刷新页面后,此信息即会消失。如果刷新页面后,此信息再次出现,可能是防病毒软件正在扫描 Global.asa 文件。
? 500-100.ASP - ASP 错误。 如果试图加载的 ASP 页中含有错误代码,将出现此错误信息。若要获得更确切的错误信息,请禁用友好 HTTP 错误信息。默认情况下,只会在默认 Web 站点上启用此错误信息。
? 502 - 网关错误。 如果试图运行的 CGI 脚本不返回有效的 HTTP 标头集,将出现此错误信息。