每条HTTP响应消息都必须在第一行中包含一个状态码,说明请求的结果。根据代码的第一
位数字,可将状态码分为以下5类。
1xx -提供信息。
2xx—请求被成功提交。
3xx—客户端被重定向到其他资源。
4xx -请求包含某种错误。
5xx—服务器执行请求时遇到错误。
还有大量特殊状态码,其中许多状态码仅用在特殊情况下。下面列出渗透测试员在攻击Web
应用程序时最有可能遇到的状态码及其相关的原因短语。
100 Continue。当客户端提交一个包含主体的请求时.将发送这个响应。该响应表示已收到请求消息头.客户端应继续发送主体。请求完成后,再由服务器返回另一个响应。
200 Ok。本状态码表示已成功提交请求,且响应主体中包含请求结果。
201 Created. PUT请求的响应返回这个状态码,表示请求已成功提交。
301 Moved Permanently。本状态码将浏览器永久重定向到另外一个在Location消息头中指定的URL。以后客户端应使用新URL替换原始URL。
302 Found。本状态码将浏览器暂时重定向到另外一个在Location消息头中指定的URL.客户端应在随后的请求中恢复使用原始URL.
304 Not Modified。本状态码指示浏览器使用缓存中保存的所请求资源的副本。服务器使用If-Modified-Since与工f-None-Match消息头确定客户端是否拥有最新版本的资源。
400 Bad Request。本状态码表示客户端提交了一个无效的HTTP请求。当以某种无效的方式修改请求时(例如在URL中插人一个空格符),可能会遇到这个状态码。
401 Unauthorized.服务器在许可请求前要求HTTP进行身份验证。WWW-Authenticate消息头详细说明所支持的身份验证类型。
403 Forbidden。本状态码指出,不管是否通过身份验证,禁止任何人访问被请求的资源。
404 Not Found。本状态码表示所请求的资源并不存在。
405 Method Not Allowed。本状态码表示指定的URL不支持请求中使用的方法。例如,如果试图在不支持PUT方法的地方使用该方法,就会收到本状态码。
413 Request Entity Too Large。如果在本地代码中探查缓冲器滋出瀚洞并就此提交超长数据串.则本状态码表示请求主体过长,服务器无法处理。
414 Request URI Too Long。与前一个响应类似,本状态码表示请求中的URL过长,服务器无法处理。
500 Internal Server Error。本状态码表示服务器在执行请求时遇到错误。当提交无法预料的输人、在应用程序处理过程中造成无法处理的错误时,通常会收到本状态码。应该仔细检查服务器响应的所有内容,了解与错误性质有关的详情。
503 Service Unavailable。通常,本状态码表示尽管Web服务器运转正常.并且能够响应请求,但服务器访问的应用程序还是无法作出响应。应该进行核实,是否因为执行了某种行为而造成这个结果。
编码方案