HTTP状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码。它由RFC 2616 规范定义的,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774 与RFC 4918 等规范扩展。所有状态码的第一个数字代表了响应的五种状态之一。所示的消息短语是典型的,但是可以提供任何可读取的替代方案。 除非另有说明,状态码是HTTP / 1.1标准(RFC 7231)的一部分。
每条HTTP相应消息都必须在第一行中包含状态码,说明请求的结果。下表整理了HTTP状态码及介绍了渗透测试员在攻击WEB时最有可能遇到的状态码。
HTTP状态码表
1XX 消息 这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。 |
100 continue |
服务器已经接收到请求头,并且客户端应继续发送请求主体(在需要发送身体的请求的情况下:例如,POST请求),或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。要使服务器检查请求的头部,客户端必须在其初始请求中发送 |
101 swtching protocols |
| |
102 processing |
| |
2XX 成功 这一类型的状态码,代表请求已成功被服务器接收、理解、并接受 |
200 OK |
请求已成功,请求所希望的响应头或数据体将随此响应返回。实际的响应将取决于所使用的请求方法。在GET请求中,响应将包含与请求的资源相对应的实体。在POST请求中,响应将包含描述或操作结果的实体。 |
201 created |
请求已经被实现,而且有一个新的资源已经依据请求的需要而创建,且其URI已经随Location头信息返回。 | |
202 accept |
服务器已接受请求,但尚未处理。 | |
203 Non-Authoritative Information |
| |
204 No Content |
| |
205 Reset Content |
| |
206 Partial Content |
| |
207 Multi-Status |
| |
208 Already Reported |
| |
226 IM Used |
| |
3XX 重定向 这类状态码代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的Location域中指明。 |
300 Multiple Choices |
|
301 Moved Permanently |
被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一。如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址。除非额外指定,否则这个响应也是可缓存的。 | |
302 Found |
要求客户端执行临时重定向 | |
303 See Other |
| |
304 Not Modified |
表示资源未被修改,因为请求头指定的版本If-Modified-Since或If-None-Match。在这种情况下,由于客户端仍然具有以前下载的副本,因此不需要重新传输资源。 | |
305 Use Proxy |
| |
306 Switch Proxy |
| |
307 Temporary Redirect |
| |
308 Permanent Redirect |
| |
4XX 客户端错误 这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。除非响应的是一个HEAD请求,否则服务器就应该返回一个解释当前错误状况的实体,以及这是临时的还是永久性的状况。这些状态码适用于任何请求方法。浏览器应当向用户显示任何包含在此类错误响应中的实体内容。 |
400 Bad Request |
由于明显的客户端错误(例如,格式错误的请求语法,太大的大小,无效的请求消息或欺骗性路由请求),服务器不能或不会处理该请求。 |
401 Unauthorized |
| |
402 Payment Required |
| |
403 Forbidden |
服务器已经理解请求,但是拒绝执行它。与401响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。如果这不是一个HEAD请求,而且服务器希望能够讲清楚为何请求不能被执行,那么就应该在实体内描述拒绝的原因。当然服务器也可以返回一个404响应,假如它不希望让客户端获得任何信息。 | |
404 Not Found |
请求失败,请求所希望得到的资源未被在服务器上发现,但允许用户的后续请求。没有信息能够告诉用户这个状况到底是暂时的还是永久的。假如服务器知道情况的话,应当使用410状态码来告知旧资源因为某些内部的配置机制问题,已经永久的不可用,而且没有任何可以跳转的地址。404这个状态码被广泛应用于当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。 | |
405 Method Not Allowed |
请求行中指定的请求方法不能被用于请求相应的资源。该响应必须返回一个Allow头信息用以表示出当前资源能够接受的请求方法的列表。 | |
406 Not Acceptable |
| |
407 Proxy Authentication Required |
| |
408 Request Timeout |
| |
409 Conflict |
| |
410 Gone |
| |
411 Length Required |
| |
412 Precondition Failed |
| |
413 Request Entity Too Large |
前称“Request Entity Too Large”,表示服务器拒绝处理当前请求,因为该请求提交的实体数据大小超过了服务器愿意或者能够处理的范围。 | |
414 Request-URI Too Long |
前称“Request-URI Too Long”,表示请求的URI长度超过了服务器能够解释的长度,因此服务器拒绝对该请求提供服务。 | |
415 Unsupported Media Type |
| |
416 Requested Range Not Satisfiable |
| |
417 Expectation Failed |
| |
418 I'm a teapot |
| |
421 Misdirected Request |
| |
422 Unprocessable Entity |
| |
423 Locked |
| |
424 Failed Dependency |
| |
426 Upgrade Required |
客户端应当切换到TLS/1.0,并在HTTP/1.1 Upgrade header中给出 | |
428 Precondition Required |
| |
429 Too Many Requests |
| |
431 Request Header Fields Too Large |
| |
451 Unavailable For Legal Reasons |
| |
5XX 服务器错误 表示服务器无法完成明显有效的请求。这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。 |
500 Internal Server Error |
服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理 |
501 Not Implemented |
| |
502 Bad Gateway |
作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应 | |
503 Service Unavailable |
由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是暂时的,并且将在一段时间以后恢复。 | |
504 Gateway Timeout |
作为网关或者代理工作的服务器尝试执行请求超时 | |
505 HTTP Version Not Supported |
| |
506 Variant Also Negotiates |
| |
507 Insufficient Storage |
| |
508 Loop Detected |
| |
510 Not Extended |
| |
511 Network Authentication Required |
|