1、状态码
具体的状态码可以百度查找,但是对于状态码的大致分类有一个清楚的了解
1XX ----信息状态码------接受的请求正在处理
2XX ------成功状态码 ------请求正常处理完毕
3XX----重定向状态码-----需要进行附加操作完成请求
4XX---客户端错误状态码-------服务器无法请求
5XX----服务器状态吗错误-----服务器处理请求错误
2、常见的状态码常简介
100 continue :表示到目前为止都很正常,客户端可以正常发送请求或者忽略这个响应
2XX : 200 ok
204 No Content: 请求已经成功处理,但是返回的响应报文不包含实体的主体部分,一般在需要客户端王服务器发送信息,而不需要返回数据的时候使用。
206 Partial Content : 表示客户端进行了范围请求,响应报文包含Content-Range 指定的范围实体内容
3XX 重定向:
301 Moved Permanently :永久性的重定向
302 Found : 临时的重定向
303 See Other : 和302有着相同功能,但是303 明确要求客户端采用GET的方法获取资源
注明: 在HTTP协议中规定,301 302 状态重定向时不允许将POST方法改成GEt 方法,但是大多数浏览器都会在301 302 303 状态下重定向把POST方法改成GET方法
304 NOt Modified :如果请求报文首部包含一些条件:比方说 if_match if-ModifiedSince if_NoneSince if-Range if-Unmodified, 如果不满足这些条件,则服务器返回304状态码
307: Temporary Redirect :临时重定向,与 302类似,但是不同的是 307要求浏览器不会把重定向的请求POST方法改成GET方法
4XX; 客户端错误:
400 Bad Request : 请求报文中含有语法的错误
401 Unauthorized: 该状态码表示发送的请求需要有认证信息(BASIC认证,DIGEST认证),如果之前已经进行过一次请求,则表示user 认证失败
403 forbidden :请求被拒绝,服务器端没有必要给出拒绝的理由
404 not find
5XX:服务器类型错误:
500 internalServer Error :服务器正在执行请求时发生错误
503 Server unavilable : 服务器暂时处超负载,或者服务器在停机在维修。无法处理请求
那么详细的在 RFC 2616 规范中有详细的记载:
状态码 | 类别 | 原因短语 | 含义 | |
---|---|---|---|---|
100 | Informational(信息性状态码) | Continue(继续) | 收到了请求的起始部分,客户端应该继续请求。 | ❤ |
101 | Informational(信息性状态码) | Switching Protocols(切换协议) | 服务器正根据客户端的指示将协议切换成 Update 首部列出的协议。 | ❤ |
200 | Success(成功状态码) | OK | 服务器已成功处理请求 | ❤ |
201 | Success(成功状态码) | Created(已创建) | 对那些要服务器创建对象的请求来说,资源已创建完毕 | |
202 | Success(成功状态码) | Accepted(已接受) | 请求已接受,但服务器尚未处理 | |
203 | Success(成功状态码) | Non-Authoritative Information(非权威信息) | 服务器已将事务成功处理,只是实体首部包含的信息不是来自原始服务器,而是来自资源的副本 | |
204 | Success(成功状态码) | No Content(没有内容) | 响应报文包含一些首部和一个状态行,但不包含实体的主体内容,一般在只需要从客户端往服务器发送信息,而对客户端不需要发送新信息内容的情况下使用 | ❤ |
205 | Success(成功状态码) | Reset Content(重置内容) | 另一个主要用于浏览器的代码。意思是浏览器应该重置当前页面上所有的 HTML 表单 | |
206 | Success(成功状态码) | Partial Content(部分内容) | 成功执行了一个部分或者 Range (范围)请求,客户端可以通过一些特殊的首部来获取部分或某个范围内的文档 响应报文中包含由 Content-Range、Date、以及 ETag 或者 Content-Location 指定范围的实体内容 |
❤ |
300 | Redirection(重定向状态码) | Multiple Choices(多项选择) | 客户端请求了实际指向多个资源的 URL。这个代码是和一个选项列表一起返回的,然后用户就可以选择他希望使用的选项了。服务器可以在 Location 首部包含首选 URL | |
301 | Redirection(重定向状态码) | Moved Permanently(永久移除) | 永久性重定向,请求的 URL 已移走。响应中应该包含一个 Location URL,说明资源现在所处的位置 | ❤ |
302 | Redirection(重定向状态码) | Found(已找到) | 临时性重定向,与状态码 301 类似, 但这里的移除是临时的。客户端应该用 Location 首部给出的 URL 对资源进行临时定位 | ❤ |
303 | Redirection(重定向状态码) | See Other(参见其他) | 告诉客户端应该用另一个 URL 获取资源。这个新的 URL 位于响应报文的 Location 首部。303 状态码 和 302 状态码有相同的功能,但是 303 明确表示客户端应采用 GET 方法获取资源。 | ❤ |
当 301、302、303 响应状态码返回时,几乎所有的浏览器都会把 POST 改成 GET,并删除请求报文内的主体,之后请求会自动再次发送。 301、302 标准是禁止将 POST 方法改变成 GET 方法的,但实际使用时大家都会这么做 |
||||
304 | Redirection(重定向状态码) | Not Modified(未修改) | 该状态码表示客户端发送附带条件的请求时,服务器允许请求访问资源,但因发生请求未满足条件的情况后,直接返回 304 Not Modified(服务器端资源未改变,可直接使用客户端未过期的缓存)304 状态码返回时,不包含任何响应的主体部分。304 虽然被划分在 3XX 类别中,但是和重定向一点关系也没有 | ❤ |
(附带条件的请求是指采用 GET 方法的请求报文中包含 If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since 中任一首部) | ||||
305 | Redirection(重定向状态码) | Use Proxy(使用代理) | 必须通过代理访问 资源,代理的位置是在 Location 首部中给出的 | |
306 | (未使用) | 这个状态码当前并未使用 | ||
307 | Redirection(重定向状态码) | Temporary Redirect(临时重定向) | 和状态码 302 类似。但客户端应该用 Location 首部给出的 URL 对资源进行临时定位。 307 会遵守浏览器标准,不会从 POST 变成 GET |
❤ |
400 | Client Error(客户端错误状态码) | Bad request(坏请求) | 告诉客户端它发送了一条异常请求 | ❤ |
401 | Client Error(客户端错误状态码) | Unauthorized(未授权) | 与适当的首部一起返回,在客户端获得资源访问权之前,请它进行身份认证 | ❤ |
402 | Client Error(客户端错误状态码) | Payment Required(要求付款) | 当前此状态码并未使用,是为未来使用预留的 | |
403 | Client Error(客户端错误状态码) | Forbidden(禁止) | 服务器拒绝了请求 | ❤ |
404 | Client Error(客户端错误状态码) | Not Found(未找到) | 服务器无法找到 所请求的 URL | ❤ |
405 | Client Error(客户端错误状态码) | Method Not Allowed(不允许使用的方法) | 请求中有一个所请求的 URI 不支持的方法。响应中应该包含一个 Allow 首部,以告知客户端所请求的资源支持使用哪些方法 | |
406 | Client Error(客户端错误状态码) | Not Acceptable(无法接受) | 客户端可以指定一些参数来说明希望接受哪些类型的实体。服务器没有资源与客户端可接受的 URL 相匹配时可使用此代码 | |
407 | Client Error(客户端错误状态码) | Proxy Authentication Required(要求进行代理认证) | 和状态码 401 类似,但用于需要进行资源认证的代理服务器 | |
408 | Client Error(客户端错误状态码) | Request Timeout(请求超时) | 如果客户端完成其请求时花费的时间太长,服务器可以回送这个状态码并关闭连接 | |
409 | Client Error(客户端错误状态码) | Conflict( 冲突) | 发出的请求在资源上造成了一些冲突 | |
410 | Client Error(客户端错误状态码) | Gone(消失了) | 除了服务器曾持有这些资源之外,与状态码 404 类似 | |
411 | Client Error(客户端错误状态码) | Length Required(要求长度指示) | 服务器要求在请求报文中包含 Content- Length 首部时会使用这个代码。发起的请求中若没有 Content-Length 首部,服务器 是不会接受此资源请求的 | |
412 | Client Error(客户端错误状态码) | Precondition Failed(先决条件失败) | 如果客户端发起了一个条件请求, 如果服务器无法满足其中的某个条件,就返回这个响应码 | |
413 | Client Error(客户端错误状态码) | Request Entity Too Large(请求实体太大) | 客户端发送的实体主体部分比 服务器能够或者希望处理的要大 | |
414 | Client Error(客户端错误状态码) | Request URI Too Long(请求 URI 太长) | 客户端发送的请求所携带的请求 URL 超过了服务器能够或者希望处理的长度 | |
415 | Client Error(客户端错误状态码) | Unsupported Media Type(不支持的媒体类型) | 服务器无法理解或不支持客户端所发送的实体的内容类型 | |
416 | Client Error(客户端错误状态码) | Requested Range Not Satisfiable(所请求的范围未得到满足) | 请求报文请求的是某范围内的指定资源,但那个范围无效,或者未得到满足 | |
417 | Client Error(客户端错误状态码) | Expectation Failed(无法满足期望) | 请求的 Expect 首部包含了一个预期内容,但服务器无法满足 | |
500 | Server Error(服务器错误状态码) | Internal Server Error(内部服务器错误) | 服务器遇到了一个错误,使其无法为请求提供服务 | ❤ |
501 | Server Error(服务器错误状态码) | Not Implemented(未实现) | 服务器无法满足客户端请求的某个功能 | |
502 | Server Error(服务器错误状态码) | Bad Gateway(网关故障) | 作为代理或网关使用的服务器遇到了来自响应链中上游的无效响应 | |
503 | Server Error(服务器错误状态码) | Service Unavailable(未提供此服务) | 服务器目前无法为请求提供服务,但过一段时间就可以恢复服务 | ❤ |
504 | Server Error(服务器错误状态码) | Gateway Timeout(网关超时) | 与状态码 408 类似,但是响应来自网关或代理,此网关或代理在等待另一台服务器的响应时出现了超时 | |
505 | Server Error(服务器错误状态码) | HTTP Version Not Supported(不支持的 HTTP 版本) | 服务器收到的请求是以它不支持或不愿支持的协议版本表示的 |
在 RFC2616 中定义了 40 种 HTTP 状态码,webDAV ( Web-based Distributed Authoring and Versioning,基于万维网的分布式创作和版本控制)在 RFC4918 和 RFC5842 中,定义了一些特殊的状态码,在 RFC2518、RFC2817、RFC2295、RFC2774、RFC6585 中还额外定义了一些附加的 HTTP 状态码。总共有 60+ 种。具体链接可以见 HTTP状态码 (wikipedia)
webDAV 新增状态码
状态码 | 类别 | 原因短语 | 含义 | |
---|---|---|---|---|
102 | Informational(信息性状态码) | Processing(处理中) | 可正常处理请求,但目前是处理中状态。WebDAV请求可能包含许多涉及文件操作的子请求,需要很长时间才能完成请求。该代码表示服务器已经收到并正在处理请求,但无响应可用。这样可以防止客户端超时,并假设请求丢失。 | |
207 | Success(成功状态码) | Multi-Status(多种状态) | 存在多种状态。代表之后的消息体将是一个 XML 消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码。 | |
208 | Success(成功状态码) | Already Reported(已经响应) | DAV绑定的成员已经在(多状态)响应之前的部分被列举,且未被再次包含。 | |
422 | Client Error(客户端错误状态码) | Unprocessable Entity(不可处理的实体) | 格式正确,内容有误,无法处理响应 | |
423 | Client Error(客户端错误状态码) | Locked(被锁定) | 资源已被加锁 | |
424 | Client Error(客户端错误状态码) | Failed Dependency(失败的依赖) | 处理与某请求关联的请求失败,因为不再维持依赖关系。 | |
507 | Server Error(服务器错误状态码) | Insufficient Storage(存储空间不足) | 服务器无法存储完成请求所必须的内容。这个状况被认为是临时的。 | |
508 | Server Error(服务器错误状态码) | Loop Detected(检测到环) | 服务器在处理请求时陷入死循环。 |