http请求常见状态码及解释
在http请求中,服务器返回的响应报文的第一行包含了状态码以及原因短语,用来告知客户端请求的结果。
HTTP 状态码
状态码 | 含义 | 解释 |
---|---|---|
1XX | Informational(信息性状态码) | 接收的请求正在处理 |
100 | Continue | 表明到目前为止都很正常,客户端可以继续发送请求或者忽略这个响应。 |
101 | Switching Protocols | 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,如,切换到HTTP的新版本协议。 |
102 | Processing | WebDAV请求可能包含许多涉及文件操作的子请求,需要很长时间才能完成请求。该代码表示服务器已经收到并正在处理请求,但无响应可用。这样可以防止客户端超时,并假设请求丢失。 |
2XX | Success(成功状态码) | 请求被成功接收并处理 |
200 | OK | 请求已成功,请求所希望的响应头或数据体将随此响应返回。实际的响应将取决于所使用的请求方法。在GET请求中,响应将包含与请求的资源相对应的实体。在POST请求中,响应将包含描述或操作结果的实体。 |
201 | Created | 已创建。成功请求并创建了新的资源。 |
202 | Accepted | 已接受。已经接受请求,但未处理完成。 |
203 | Non-Authoritative Information | 非授权信息。请求成功。但返回的Meta信息不在原始的服务器,而是一个副本。 |
204 | No Content | 请求已经成功处理,但未返回内容,即返回的响应报文不包含实体的主体部分。一般在只需要从客户端往服务器发送信息,而不需要返回数据时使用。 |
205 | Reset Content | 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域。 |
206 | Partial Content | 部分内容,表示客户端进行了范围请求。服务器成功处理了部分GET请求,响应报文包含由 Content-Range 指定范围的实体内容。 |
207 | Multi-Status(WebDAV;RFC 4918) | 代表之后的消息体将是一个XML消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码。 |
208 | Already Reported (WebDAV;RFC 5842) | DAV绑定的成员已经在(多状态)响应之前的部分被列举,且未被再次包含。 |
226 | IM Used (RFC 3229) | 服务器已经满足了对资源的请求,对实体请求的一个或多个实体操作的结果表示。 |
3XX | Redirection(重定向状态码) | 重定向,需要进一步的操作以完成请求 |
300 | Multiple Choices | 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择。 |
301 | Moved Permanently | 永久性重定向。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替。 |
302 | Found | 临时性重定向。与301类似。但资源只是临时被移动。客户端应继续使用原有URI。 |
303 | See Other | 查看其它地址。和302有着相同的功能,但是303明确要求客户端应该采用GET方法获取资源。 |
304 | Not Modified | 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源。 |
305 | Use Proxy | 使用代理。所请求的资源必须通过代理访问。 |
306 | Unused | 已经被废弃的HTTP状态码。 |
307 | Temporary Redirect | 临时重定向。与302类似。但是307要求浏览器不会把重定向请求的POST方法改成GET方法。 |
308 | Permanent Redirect (RFC 7538) | 请求和所有将来的请求应该使用另一个URI重复。 307和308重复302和301的行为,但不允许HTTP方法更改。 例如,将表单提交给永久重定向的资源可能会顺利进行。 |
4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 |
400 | Bad Request | 请求报文中存在语法错误,服务器无法理解。 |
401 | Unauthorized | 该状态码表示发送的请求需要有认证信息(BASIC 认证、DIGEST 认证)。如果之前已进行过一次请求,则表示用户认证失败。 |
402 | Payment Required | 保留,将来使用。 |
403 | Forbidden | 服务器理解请求客户端的请求,但是拒绝执行此请求。服务器端没有必要给出拒绝的详细理由。 |
404 | Not Found | 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置”您所请求的资源无法找到”的个性页面。 |
405 | Method Not Allowed | 客户端请求中的方法被禁止。 |
406 | Not Acceptable | 服务器无法根据客户端请求的内容特性完成请求。 |
407 | Proxy Authentication Required | 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权。 |
408 | Request Time-out | 服务器等待客户端发送的请求时间过长,超时。 |
409 | Conflict | 服务器完成客户端的PUT请求是可能返回此代码,服务器处理请求时发生了冲突。 |
410 | Gone | 客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置。 |
411 | Length Required | 服务器无法处理客户端发送的不带Content-Length的请求信息。 |
412 | Precondition Failed | 客户端请求信息的先决条件错误。 |
413 | Request Entity Too Large | 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息。 |
414 | Request-URI Too Large | 请求的URI过长(URI通常为网址),服务器无法处理。 |
415 | Unsupported Media Type | 服务器无法处理请求附带的媒体格式。 |
416 | Requested range not satisfiable | 客户端请求的范围无效。 |
417 | Expectation Failed | 服务器无法满足Expect的请求头信息。 |
421 | Misdirected Request (RFC 7540) | 该请求针对的是无法产生响应的服务器(例如因为连接重用)。 |
422 | Unprocessable Entity(WebDAV;RFC 4918 ) | 请求格式正确,但是由于含有语义错误,无法响应。 |
423 | Locked(WebDAV;RFC 4918) | 当前资源被锁定。 |
424 | Failed Dependency(WebDAV;RFC 4918) | 由于之前的某个请求发生的错误,导致当前请求失败,例如PROPPATCH。 |
426 | Upgrade Required(RFC 2817) | 客户端应当切换到TLS/1.0,并在HTTP/1.1 Upgrade header中给出。 |
428 | Precondition Required (RFC 6585) | 原服务器要求该请求满足一定条件。这是为了防止‘未更新’问题,即客户端读取(GET)一个资源的状态,更改它,并将它写(PUT)回服务器,但这期间第三方已经在服务器上更改了该资源的状态,因此导致了冲突。 |
429 | Too Many Requests (RFC 6585) | 用户在给定的时间内发送了太多的请求。旨在用于网络限速。 |
431 | Request Header Fields Too Large (RFC 6585) | 服务器不愿处理请求,因为一个或多个头字段过大。 |
444 | No Response | Nginx上HTTP服务器扩展。服务器不向客户端返回任何信息,并关闭连接(有助于阻止恶意软件)。 |
450 | Blocked by Windows Parental Controls | 这是一个由Windows家庭控制(Microsoft)HTTP阻止的450状态代码的示例,用于信息和测试。 |
451 | Unavailable For Legal Reasons | 该访问因法律的要求而被拒绝,由IETF在2015核准后新增加。 |
494 | Request Header Too Large | 在错误代码431提出之前Nginx上使用的扩展HTTP代码。 |
499 | Client has Closed Connection | 客户端已经断开链接。可能是客户端主动断开,也有可能是超时断开。 |
5XX | Server Error(服务器错误状态码) | 服务器处理请求出错 |
500 | Internal Server Error | 服务器内部错误,无法完成请求。 |
501 | Not Implemented | 服务器不支持请求的功能,无法完成请求。通常出现在nginx没有定义对应的server配置时出现。 |
502 | Bad Gateway | 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。 |
503 | Service Unavailable | 服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。延时的长度可包含在服务器的Retry-After头信息中。 |
504 | Gateway Time-out | 充当网关或代理的服务器,未及时从远端服务器获取请求。 |
505 | HTTP Version not supported | 服务器不支持请求的HTTP协议的版本,无法完成处理。 |
506 | Variant Also Negotiates(RFC 2295) | 由《透明内容协商协议》(RFC 2295)扩展,代表服务器存在内部配置错误,被请求的协商变元资源被配置为在透明内容协商中使用自己,因此在一个协商处理中不是一个合适的重点。 |
507 | Insufficient Storage(WebDAV;RFC 4918) | 服务器无法存储完成请求所必须的内容。这个状况被认为是临时的。 |
508 | Loop Detected (WebDAV;RFC 5842) | 服务器在处理请求时陷入死循环。(可代替 208状态码) |
510 | Not Extended(RFC 2774) | 获取资源所需要的策略并没有被满足。 |
511 | Network Authentication Required (RFC 6585) | 客户端需要进行身份验证才能获得网络访问权限,旨在限制用户群访问特定网络。(例如连接WiFi热点时的强制网络门户) |
- 虽然 HTTP 协议规定 301、302 状态下重定向时不允许把 POST 方法改成 GET 方法,但是大多数浏览器都会在 301、302 和 303 状态下的重定向把 POST 方法改成 GET 方法。
- WebDAV是基于Web的分布式编写和版本控制,是超文本传输协议(HTTP)的扩展。有利于用户间协同编辑和管理存储在万维网服务器文档。许多现代操作系统为WebDAV提供了内置的客户端支持。