HTTP状态码(HTTP Status Code)是用以表示网页serverHTTP响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。
HTTP状态码分五大类:
100-199 用于指定client应对应的某些动作。
200-299 用于表示请求成功。
300-399 用于已经移动的文件而且常被包括在定位头信息中指定新的地址信息(重定向)。
400-499 用于指出client的错误(请求错误)。
500-599 用于支持server错误。
常见的HTTP状态码:
200 OK server已成功处理了请求并提供了请求的网页。一般用于对应GET和POST请求。这个状态码对servlet是缺省的;假设没有调用setStatus方法的话,就会得到200。
304 Not Modified client有缓冲的文档并发出了一个条件性的请求(通常是提供If-Modified-Since头表示客户仅仅想比指定日期更新的文档)。
server告诉客户,原来缓冲的文档还能够继续使用。
403 Forbidden 是除非拥有授权否则server拒绝提供所请求的资源。这个状态常常会因为server上的损坏文件或文件夹许可而引起。
404 Not Found server找不到请求的网页。server上不存在的网页常常会返回此代码。
500 Internal Server Error server遇到了一个未曾预料的状况,导致了它无法完毕对请求的处理。
一般来说,这个问题都会在server端的源码出现错误时出现。
502 Bad Gateway 作为网关或者代理工作的server尝试运行请求时,从上游server接收到无效的响应。
503 Service Unavailable 因为暂时的server维护或者过载,server当前无法处理请求。这个状况是暂时的。而且将在一段时间以后恢复。假设可以估计延迟时间,那么响应中可以包括一个 Retry-After 头用以标明这个延迟时间。
假设没有给出这个 Retry-After 信息,那么client应当以处理500响应的方式处理它。
504 Gateway Timeout 作为网关或者代理工作的server尝试运行请求时,未能及时从上游server(URI标识出的server,比如HTTP、FTP、LDAP)或者辅助server(比如DNS)收到响应。
其他状态码
100(继续) | client应当继续发送请求。 这个暂时响应是用来通知client它的部分请求已经被server接收,且仍未被拒绝。client应当继续发送请求的剩余部分。或者假设请求已经完毕,忽略这个响应。 server必须在请求完毕后向client发送一个终于响应。 |
101(切换协议) | server已经理解了client的请求,并将通过Upgrade 消息头通知client採用不同的协议来完毕这个请求。在发送完这个响应最后的空行后,server将会切换到在Upgrade 消息头中定义的那些协议。 |
201(已创建) | 请求成功而且server创建了新的资源。 |
202(已接受) | server已接受请求,但尚未处理。 |
203(非授权信息) | server已成功处理了请求,但返回的信息可能来自还有一来源。 |
204(无内容) | server成功处理了请求。但没有返回不论什么内容。 |
205(重置内容) | server成功处理了请求,但没有返回不论什么内容。与 204响应不同,此响应要求请求者重置文档视图(比如,清除表单内容以输入新内容)。 |
206(部分内容) | server成功处理了部分 GET 请求。 |
300(多种选择) | 针对请求,server可运行多种操作。server可依据请求者 (user agent)选择一项操作。或提供操作列表供请求者选择。 |
301(永久移动) | 请求的网页已永久移动到新位置。server返回此响应(对 GET 或 HEAD请求的响应)时,会自己主动将请求者转到新位置。 |
302(暂时移动) | 请求的资源暂时从不同的 URI响应请求。由于这种重定向是暂时的。client应当继续向原有地址发送以后的请求。 仅仅有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。假设这不是一个 GET 或者 HEAD 请求,那么浏览器禁止自己主动进行重定向,除非得到用户的确认。由于请求的条件可能因此发生变化。 |
303(查看其它位置) | 请求者应当对不同的位置使用单独的 GET 请求来检索响应时。server返回此代码。对于除 HEAD之外的全部请求。server会自己主动转到其它位置。 |
305(使用代理) | 请求者仅仅能使用代理訪问请求的网页。假设server返回此响应。还表示请求者应使用代理。 |
307(暂时重定向) |
请求的资源暂时从不同的URI 响应请求;新的暂时性的URI 应当在响应的 Location 域中返回。除非这是一个HEAD 请求,否则响应的实体中应当包括指向新的URI 的超链接及简短说明。由于部分浏览器不能识别307响应,因此须要加入上述必要信息以便用户可以理解并向新的 URI 发出訪问请求;假设这不是一个GET 或者 HEAD 请求,那么浏览器禁止自己主动进行重定向,除非得到用户的确认,由于请求的条件可能因此发生变化。
|
400(错误请求) | server不理解请求的语法。 |
401(未授权) | 请求要求身份验证。 对于登录后请求的网页,server可能返回此响应。 |
405(方法禁用) | 禁用请求中指定的方法。 |
406(不接受) | 无法使用请求的内容特性响应请求的网页。 |
407(须要代理授权) | 与401响应类似。仅仅只是client必须在代理server上进行身份验证。代理server必须返回一个 Proxy-Authenticate 用以进行身份询问。client能够返回一个 Proxy-Authorization 信息头用以验证。 |
408(请求超时) | server等候请求时发生超时。 |
409(冲突) | server在完毕请求时发生冲突。server必须在响应中包括有关冲突的信息。server在响应与前一个请求相冲突的 PUT请求时可能会返回此代码,以及两个请求的差异列表。 |
410(已删除) | 假设请求的资源已永久删除,server就会返回此响应。该代码与404(未找到)代码类似,但在资源曾经存在而如今不存在的情况下,有时会用来替代 404 代码。假设资源已永久移动,您应使用 301指定资源的新位置。 |
411(须要有效长度) | server不接受不含有效内容长度标头字段的请求。 |
412(未满足前提条件) | server未满足请求者在请求中设置的当中一个前提条件。 |
413(请求实体过大) | server无法处理请求,由于请求实体过大。超出server的处理能力。 |
414(请求的 URI 过长) | 请求的 URI(通常为网址)过长。server无法处理。 |
415(不支持的媒体类型) | 请求的格式不受请求页面的支持。 |
416(请求范围不符合要求) | 假设页面无法提供请求的范围,则server会返回此状态码。 |
417(未满足期望值) | server未满足”期望”请求标头字段的要求。 |
501(尚未实施) | server不具备完毕请求的功能。 比如,server无法识别请求方法时可能会返回此代码。 |
505(HTTP 版本号不受支持) | server不支持请求中所用的 HTTP 协议版本号。 |