HTTP状态码是用以表示网页服务器HTTP响应状态的3位数字代码。所有状态码的第一个数字代表了响应的五种状态之一。
1xx:消息
这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送 1xx 响应。
2xx:成功
这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。
3xx:重定向
这类状态码代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的Location域中指明。
当且仅当后续的请求所使用的方法是GET或者HEAD时,用户浏览器才可以在没有用户介入的情况下自动提交所需要的后续请求。客户端应当自动监测无限循环重定向(例如:A->A,或者A->B->C->A),因为这会导致服务器和客户端大量不必要的资源消耗。按照HTTP/1.0版规范的建议,浏览器不应自动访问超过5次的重定向。
4xx:请求错误
这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。除非响应的是一个HEAD请求,否则服务器就应该返回一个解释当前错误状况的实体,以及这是临时的还是永久性的状况。这些状态码适用于任何请求方法。浏览器应当向用户显示任何包含在此类错误响应中的实体内容。
如果错误发生时客户端正在传送数据,那么使用TCP的服务器实现应当仔细确保在关闭客户端与服务器之间的连接之前,客户端已经收到了包含错误信息的数据包。如果客户端在收到错误信息后继续向服务器发送数据,服务器的TCP栈将向客户端发送一个重置数据包,以清除该客户端所有还未识别的输入缓冲,以免这些数据被服务器上的应用程序读取并干扰后者。
5xx:服务器错误
这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。除非这是一个HEAD请求,否则服务器应当包含一个解释当前错误状态以及这个状况是临时的还是永久的解释信息实体。浏览器应当向用户展示任何在当前响应中被包含的实体。
序号 | 状态码 | 描述 |
1 | 100 | Continue |
初始的请求已经接受,客户应当继续发送请求的其余部分 | ||
2 | 101 | Switching Protocols |
服务器将遵从客户的请求转换到另外一种协议 | ||
3 | 102 | Processing |
由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行 | ||
4 | 200 | OK |
指示请求成功,且请求的信息包含在响应中。这是最常接收的状态代码 | ||
5 | 201 | Created |
指示请求导致在响应被发送前创建新资源 | ||
6 | 202 | Accepted |
指示请求已被接受做进一步处理 | ||
7 | 203 | Non-Authoritative Information |
指示返回的元信息来自缓存副本而不是原始服务器,因此可能不正确 | ||
8 | 204 | No Content |
指示已成功处理请求并且响应已被设定为无内容 | ||
9 | 205 | Reset Content |
指示客户端应重置(或重新加载)当前资源 | ||
10 | 206 | Partial Content |
指示响应是包括字节范围的 GET 请求所请求的部分响应 | ||
11 | 207 | Multi-Status |
由WebDAV(RFC 2518)扩展的状态码,代表之后的消息体将是一个XML消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码 | ||
12 | 300 | Multiple Choices |
指示请求的信息有多种表示形式。 默认操作是将此状态视为重定向,并遵循与此响应关联的 Location 头的内容 | ||
13 | 301 | Moved Permanently |
指示请求的信息已移到 Location 头中指定的 URI 处。 接收到此状态时的默认操作为遵循与响应关联的 Location 头。 原始请求方法为 POST 时,重定向的请求将使用 GET 方法 | ||
14 | 302 | Found |
指示请求的信息位于 Location 头中指定的 URI 处。 接收到此状态时的默认操作为遵循与响应关联的 Location 头。 原始请求方法为 POST 时,重定向的请求将使用 GET 方法 | ||
15 | 303 | See Other |
类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取 | ||
16 | 304 | Not Modified |
客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用 | ||
17 | 305 | Use Proxy |
客户请求的文档应该通过Location头所指明的代理服务器提取 | ||
18 | 306 | Unused |
是未完全指定的 HTTP/1.1 规范的建议扩展 | ||
19 | 307 | Temporary Redirect |
和 302(Found)相同。许多浏览器会错误地响应302应答进行重定向,即使原来的请求是POST,即使它实际上只能在POST请求的应答是303时 才能重定向。由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码:当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只 能跟随对GET请求的重定向 | ||
20 | 400 | Bad Request |
请求出现语法错误 | ||
21 | 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 所专用。 | ||
22 | 402 | Payment Required |
保留 PaymentRequired 以供将来使用 | ||
23 | 403 | Forbidden |
资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。禁止访问: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 所专用。 | ||
24 | 404 | Not Found |
无法找到指定位置的资源。这也是一个常用的应答 404.0 - 没有找到文件或目录 404.1 - 无法在所请求的端口上访问 Web 站点 404.2 - Web 服务扩展锁定策略阻止本请求 404.3 - MIME 映射策略阻止本请求。 |
||
25 | 405 | Method Not Allowed |
请求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)对指定的资源不适用,用来访问本页面的 HTTP 谓词不被允许(方法不被允许) | ||
26 | 406 | Not Acceptable |
指定的资源已经找到,但它的MIME类型和客户在Accpet头中所指定的不兼容,客户端浏览器不接受所请求页面的 MIME 类型 | ||
27 | 407 | Proxy Authentication Required |
要求进行代理身份验证,类似于401,表示客户必须先经过代理服务器的授权 | ||
28 | 408 | Request Timeout |
在服务器许可的等待时间内,客户一直没有发出任何请求。客户可以在以后重复同一请求 | ||
29 | 409 | Conflict |
通常和PUT请求有关。由于请求和资源的当前状态相冲突,因此请求不能成功 | ||
30 | 410 | Gone |
所请求的文档已经不再可用,而且服务器不知道应该重定向到哪一个地址。它和404的不同在于,返回407表示文档永久地离开了指定的位置,而404表示由于未知的原因文档不可用 | ||
31 | 411 | Length Required |
服务器不能处理请求,除非客户发送一个Content-Length头 | ||
32 | 412 | Precondition Failed |
请求头中指定的一些前提条件失败 | ||
33 | 413 | Request Entity Too Large |
目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求,则应该提供一个Retry-After头 | ||
34 | 414 | Request-URI Too Large |
指示 URI 太长 | ||
35 | 415 | Unsupported Media Type |
不支持的媒体类型 | ||
36 | 416 | Requested range not satisfiable |
服务器不能满足客户在请求中指定的Range头 | ||
37 | 417 | Expectation Failed |
在请求头Expect中指定的预期内容无法被服务器满足,或者这个服务器是一个代理服务器,它有明显的证据证明在当前路由的下一个节点上,Expect的内容无法被满足 | ||
38 | 418 | I'm a teapot |
本操作码是在1998年作为IETF的传统愚人节笑话, 在RFC 2324 超文本咖啡壶控制协议中定义的,并不需要在真实的HTTP服务器中定义 | ||
39 | 421 | There are too many connections from your internet address |
从当前客户端所在的IP地址到服务器的连接数超过了服务器许可的最大范围。通常,这里的IP地址指的是从服务器上看到的客户端地址(比如用户的网关或者代理服务器地址)。在这种情况下,连接数的计算可能涉及到不止一个终端用户 | ||
40 | 422 | Unprocessable Entity |
请求格式正确,但是由于含有语义错误,无法响应 | ||
41 | 423 | Locked |
当前资源被锁定 | ||
42 | 424 | Failed Dependency |
由于之前的某个请求发生的错误,导致当前请求失败,例如PROPPATCH | ||
43 | 425 | Unordered Collection |
在WebDav Advanced Collections草案中定义,但是未出现在《WebDAV顺序集协议》(RFC 3658)中 | ||
44 | 426 | Upgrade Required |
客户端应当切换到TLS/1.0 | ||
45 | 449 | Retry With |
由微软扩展,代表请求应当在执行完适当的操作后进行重试 | ||
46 | 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 错误。 | ||
47 | 501 | Not Implemented |
服务器不支持实现请求所需要的功能,页眉值指定了未实现的配置。例如,客户发出了一个服务器不支持的PUT请求 | ||
48 | 502 | Bad Gateway |
服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。 亦说Web 服务器用作网关或代理服务器时收到了无效响502.1 - CGI 应用程序超时 502.2 - CGI 应用程序出错。 |
||
49 | 503 | Service Unavailable |
服务不可用,服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个 Retry-After头。这个错误代码为 IIS 6.0 所专用 | ||
50 | 504 | Gateway Timeout |
网关超时,由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答 | ||
51 | 505 | HTTP Version Not Supported |
服务器不支持请求中所指明的HTTP版本 | ||
52 | 506 | Variant Also Negotiates |
由《透明内容协商协议》(RFC 2295)扩展,代表服务器存在内部配置错误:被请求的协商变元资源被配置为在透明内容协商中使用自己,因此在一个协商处理中不是一个合适的重点 | ||
53 | 507 | Insufficient Storage |
服务器无法存储完成请求所必须的内容。这个状况被认为是临时的。WebDAV | ||
54 | 507 | Bandwidth Limit Exceeded |
服务器达到带宽限制。这不是一个官方的状态码,但是仍被广泛使用 | ||
55 | 510 | Not Extended |
获取资源所需要的策略并没有没满足 |