常见的 HTTP 状态码
了解常见的 HTTP 状态码。
参考:
HTTP 状态码
根据实际状态可以划分为:
- 信息(Informational)
- 成功(Success)
- 重定向(Redirection)
- 客户端错误(Client Error)
- 服务端错误(Server Error)
标记为最常见状态码
信息状态- - 1xx
| 状态码 | 返回信息 | 描述 |
|---|---|---|
| 100 | Continue | 初始的请求已经接受,客户端应当继续发送请求的其余部分,如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。 |
| 101 | Switching Protocols | 服务器将遵从客户端的请求转换到另外一种协议 |
| 102 | Processing (WebDAV) | 由 WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。 |
成功状态- - 2xx
| 状态码 | 返回信息 | 描述 |
|---|---|---|
| 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 请求,服务器完成了它 |
| 207 | Multi-Status (WebDAV) | 由 WebDAV(RFC 2518)扩展的状态码,代表之后的消息体将是一个 XML 消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码。 |
| 208 | Already Reported (WebDAV) | |
| 226 | IM Used |
重定向状态- - 3xx
| 状态码 | 返回信息 | 描述 |
|---|---|---|
| 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 请求的重定向。 |
| 308 | Permanent Redirect (experimental) | 该状态码是为了将来可能的需求而预留的。 |
客户端错误状态- - 4xx
| 状态码 | 返回信息 | 描述 |
|---|---|---|
| 400 | Bad Request | 请求出现re语法错误。 |
| 401 | Unauthorized | 客户端试图未经授权访问受密码保护的页面。应答中会包含一个 WWW-Authenticate 头,浏览器据此显示用户名字/密码对话框,然后在填写合适的 Authorization 头后再次发出请求。 |
| 402 | Payment Required | 该状态码是为了将来可能的需求而预留的。 |
| 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太长 |
| 415 | Unsupported Media Type | 对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝。 |
| 416 | Requested Range Not Satisfiable | 服务器不能满足客户在请求中指定的 Range 头 |
| 417 | Expectation Failed | 在请求头 Expect 中指定的预期内容无法被服务器满足,或者这个服务器是一个代理服务器,它有明显的证据证明在当前路由的下一个节点上, Expect 的内容无法被满足。 |
| 418 | I'm a teapot (RFC 2324) | |
| 420 | Enhance Your Calm (Twitter) | |
| 422 | Unprocessable Entity (WebDAV) | 从当前客户端所在的IP地址到服务器的连接数超过了服务器许可的最大范围。通常,这里的IP地址指的是从服务器上看到的客户端地址 (比如用户的网关或者代理服务器地址)。在这种情况下,连接数的计算可能涉及到不止一个终端用户。 |
| 423 | Locked (WebDAV) | 请求格式正确,但是由于含有语义错误,无法响应。(RFC 4918 WebDAV)423 Locked 当前资源被锁定。(RFC 4918 WebDAV) |
| 424 | Failed Dependency (WebDAV) | 由于之前的某个请求发生的错误,导致当前请求失败,例如 PROPPATCH。(RFC 4918 WebDAV) |
| 425 | Reserved for WebDAV | 在 WebDav Advanced Collections 草案中定义,但是未出现在《WebDAV 顺序集协议》(RFC 3658)中。 |
| 426 | Upgrade Required | 客户端应当切换到TLS/1.0。(RFC 2817) |
| 428 | Precondition Required | |
| 429 | Too Many Requests | |
| 431 | Request Header Fields Too Large | |
| 444 | No Response (Nginx) | |
| 449 | Retry With (Microsoft) | 由微软扩展,代表请求应当在执行完适当的操作后进行重试。 |
| 450 | Blocked by Windows Parental Controls (Microsoft) | |
| 451 | Unavailable For Legal Reasons | |
| 499 | Client Closed Request (Nginx) |
服务端错误状态- - 5xx
| 状态码 | 返回信息 | 描述 |
|---|---|---|
| 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版本 |
| 506 | Variant Also Negotiates (Experimental) | 由《透明内容协商协议》(RFC 2295)扩展,代表服务器存在内部配置错误:被请求的协商变元资源被配置为在透明内容协商中使用自己, 因此在一个协商处理中不是一个合适的重点。 |
| 507 | Insufficient Storage (WebDAV) | 服务器无法存储完成请求所必须的内容。这个状况被认为是临时的。WebDAV (RFC 4918) |
| 508 | Loop Detected (WebDAV) | |
| 509 | Bandwidth Limit Exceeded (Apache) | 服务器达到带宽限制。这不是一个官方的状态码,但是仍被广泛使用。 |
| 510 | Not Extended | 获取资源所需要的策略并没有没满足。(RFC 2774) |
| 511 | Network Authentication Required | |
| 598 | Network read timeout error | |
| 599 | Network connect timeout error |
推荐文章
-
2022-08-25
通过源码编译安装部署 Nginx