HTTP 状态代码
HTTP 状态代码本部分介绍 IIS 7.0 使用的 HTTP 状态代码。
注意 这篇文章不会列出每个可能的 HTTP 状态代码,要求于 HTTP 规范中。这篇文章包括只的 HTTP
状态代码的 IIS 7.0 可以发送的。例如,自定义 Internet 服务器 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-无效的 If 标头。
- 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-禁止访问: Passport 登录失败。
- 403.21-禁止访问: 源访问被拒绝。
- 403.22-禁止访问: 拒绝无限的深度。
- 403.502-禁止访问: 过多的请求来自同一客户端 IP;已达到动态 IP 限制限制。
- 404-未找到。
IIS 7.0 定义了以下指示一个更具体的 404 错误原因的 HTTP 状态代码:
- 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 模拟配置不适用于托管管道模式。
- 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-网关无效。
- 503-服务不可用。
IIS 7.0 定义了以下指示一个更具体的 503 错误原因的 HTTP 状态代码:
- 503.0-应用程序池不可用。
- 503.2-超出的并发请求限制。
工欲善其事,必先利其器。