HTTP响应状态码分类
1XX:100-199 信息响应
2XX:200-299 成功响应
3XX:300-399 重定向
4XX:400-499客户端错误
5XX:500-505 服务器端错误
一、信息响应
1、100 Continue(持续):这个临时响应表明,迄今为止的所有内容都是可行的,客户端应该继续请求,如果已经完成,则忽略它。
2、101 Switching Protocol(交换协议):该代码是响应客户端的Upgrade(en-US)标头发送的,并且指示服务器也正在切换的协议。
3、102 Processing(WebDAV(en-US))(处理):此代码表示服务器已收到并正在处理该请求,但没有响应可用。
4、103 Early Hints(早期提示):此状态代码主要用于与Link链接头一起使用,以允许用户代理在服务器仍在准备响应时开始预加载资源。
二、成功响应
1、200 OK:请求成功,成功的含义取决于HTTP方法
(1)GET:资源已被提取并在消息正文中传输
(2)HEAD:实体标头位于消息正文中
(3)POST:描述动作结果的资源在消息体中传输
(4)TRACE:消息正文包含服务器收到的请求消息
2、201 Created(创建):该请求已成功,并因此创建了一个新的资源。这通常是在POST请求,或是某些PUT请求之后返回的响应。
3、202 Accepted(认可的):请求已经接收到,但还未响应,没有结果。意味着不会有一个异步的响应去表明当前请求的结果,预期另外的进程和服务区处理请求,或者批处理。
4、203 Non-Authoritative Information(非授权信息):服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。当前的信息可能是原始版本的子集或者超集。例如,包含资源的元数据可能导致原始服务器知道元信息的超集。使用此状态码不是必须的,而是只有在响应不使用此状态码便会返回200 Ok的情况下才是合适的。
5、204 No Content(无内容):服务器成功处理了请求,但不需要返回任何实体内容,并且希望返回更新了的元信息。响应可能通过实体头部的形式,返回新的或更新后的元信息。如果存在这些头部信息,则应当与所请求的变量相呼应。
6、205 Reset Content(重置内容):服务器成功处理了请求,且没有返回任何内容。但是与204响应不同,返回此状态码的响应要求请求者重置文档视图。该响应主要是被用于接受用户输入后,立即重置表单,以便用户能够轻松地开始另一次输入。与204响应一样,该响应也被禁止包含任何消息体,且以消息头后的第一个空行结束。
三、重定向
1、300 Multiple Choice(多项选择):被请求的资源有一系列可供选择的回馈信息,每个都有自己特定的地址和浏览器驱动的商议信息。用户或浏览器能够自行选择一个首选的地址进行重定向。
2、301 Moved Permanently(永久移除):被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URL之一。如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址。除非额外指定,否则这个响应也是可缓存的。
3、302 Found(建立):请求的资源现在临时从不同的 URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。
4、303 See Other(参见其他):对应当前请求的响应可以在另一个 URI 上被找到,而且客户端应当采用 GET 的方式访问那个资源。这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。
5、304 Not Modified(未修改):如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。304 响应禁止包含消息体,因此始终以消息头后的第一个空行结尾。
6、305 Use Proxy(使用代理):被请求的资源必须通过指定的代理才能被访问。Location 域中将给出指定的代理所在的 URI 信息,接收者需要重复发送一个单独的请求,通过这个代理才能访问相应资源。只有原始服务器才能建立305响应。
7、306 unused(未使用的):在最新版的规范中,306 状态码已经不再被使用。
四、客户端响应
1、400 Bad Request(错误的请求)
①语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。
②请求参数有误。
2、401 Unauthorized(未经授权):当前请求需要用户验证。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息。客户端可以重复提交一个包含恰当的 Authorization 头信息的请求。如果当前请求已经包含了 Authorization 证书,那么401响应代表着服务器验证已经拒绝了那些证书。如果401响应包含了与前一个响应相同的身份验证询问,且浏览器已经至少尝试了一次验证,那么浏览器应当向用户展示响应中包含的实体信息,因为这个实体信息中可能包含了相关诊断信息。
3、402 Payment Required(所需付款):此响应码保留以便将来使用,创造此响应码的最初目的是用于数字支付系统,然而现在并未使用。
4、403 Forbidden(被禁止的):服务器已经理解请求,但是拒绝执行它。
5、404 Not Found(未找到):请求失败,请求所希望得到的资源未被在服务器上发现。没有信息能够告诉用户这个状况到底是暂时的还是永久的。假如服务器知道情况的话,应当使用410状态码来告知旧资源因为某些内部的配置机制问题,已经永久的不可用,而且没有任何可以跳转的地址。404这个状态码被广泛应用于当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。
6、405 Method Not Allowed(不允许的方法):请求行中指定的请求方法不能被用于请求相应的资源。
7、406 Not Acceptable(不可接受):请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体。
8、407 Proxy Authentication Required(需要代理身份验证):与401响应类似,只不过客户端必须在代理服务器上进行身份验证。代理服务器必须返回一个 Proxy-Authenticate 用以进行身份询问。客户端可以返回一个 Proxy-Authorization 信息头用以验证。
9、408 Request Timeout(请求超时):请求超时。客户端没有在服务器预备等待的时间内完成一个请求的发送。客户端可以随时再次提交这一请求而无需进行任何更改。
五、服务端响应
1、500 Internal Server Error(服务器错误):服务器遇到了不知道如何处理的情况。
2、501 Not Implemented(不被支持):此请求方法不被服务器支持且无法被处理。只有GET和HEAD是要求服务器支持的,它们必定不会返回此错误代码。
3、502 Bad Gateway(网关错误):此错误响应表明服务器作为网关需要得到一个处理这个请求的响应,但是得到一个错误的响应。
4、503 Service Unavailable(服务器不可用):服务器没有准备好处理请求。 常见原因是服务器因维护或重载而停机。
6、504 Gateway Timeout(网关超时):当服务器作为网关,不能及时得到响应时返回此错误代码。
7、505 HTTP Version Not Supported(不支持协议):服务器不支持请求中所使用的HTTP协议版本。
8、506 Variant Also Negotiates(不接受):服务器有一个内部配置错误:对请求的透明内容协商导致循环引用。
9、507 Insufficient Storage(需要代理授权):服务器有内部配置错误:所选的变体资源被配置为参与透明内容协商本身,因此不是协商过程中的适当端点。
10、508 Loop Detected (WebDAV (en-US))(请求超时):服务器在处理请求时检测到无限循环。