HTTP协议(8)HTTP响应报文和状态码

对于HTTP响应报文,比较重要的信息主要有两部分,一部分是响应行中的状态码,另一部分是响应头。下面分别介绍。
响应头信息中比较重要的部分:

(1) Server,服务端所使用的Web服务名称,如:Server:Apache/1.3.6(Unix)。
(2) Set-Cookie:服务器向客户端设置的Cookie。
(3) Last-Modified,服务器通过这个域告诉客户端浏览器,资源的最后修改时间。
(4) Location:重定向用户到另一个页面,比如身份认证通过之后就会转向另一个页面。这个域通常配合302状态码使用。
(5) Content-Length:body部分的长度(单位字节)。

状态码都是由三位数字组成,主要分为5个大类:

?   1xx:100-101,指示信息,表示请求已经接收,会继续处理。这种状态码很少见到。
?   2xx:200-206,客户端请求被服务器成功接收并处理后返回的响应;
?   3xx:300-305,重定向,通常都是在身份认证成功后重定向到一个安全页面;
?   4xx:400-415,客户端请求错误;
?   5xx:500-505,服务器端错误。

状态码共有50多个,其中比较常见的有:

常见状态代码  状态描述        说明
  200       OK              客户端请求成功
  302       Found       重定向,跳转的地址通过location指定。
  304       Not Modified    服务端资源未更新。
  401       Unauthorized    请求未经授权,需要进行身份验证。
  403       Forbidden   服务器收到请求,但是拒绝提供服务
  404       Not Found   请求资源不存在,例如输入了错误的URL
  500       Internal Server Error 服务器发生不可预期的错误
  503       Server Unavailable      服务器当前不能处理客户端的请求

大多数的网站扫描工具其基本工作原理都是基于状态码来进行判断。下面我们结合Burpsuite来进一步了解状态码。
我们首先访问服务器中的一个正常页面test1.php,此时的状态码为200。

然后再访问一个不存在的页面test10.php,此时状态码为404:

我们再去访问一个网站中并不存在的目录admin(注意,目录名字后面要加/),状态码依然是404:

我们创建出目录admin,此时显示状态码为200。如果执行chmod 700 admin命令,将目录权限设置为700,那么再次访问目录,状态码为403。

再比如我们在Web服务器中安装上DVWA,访问登录页面,正确输入用户名和密码,拦截请求之后,发送出去,此时返回的状态码为302,并通过location指定了要跳转到的页面。

如果重复访问某个静态页面,则会收到状态码304。表示服务器端资源未更新。

原文地址:http://blog.51cto.com/yttitan/2325921

时间: 2024-08-01 19:26:24

HTTP协议(8)HTTP响应报文和状态码的相关文章

响应报文的状态码

响应报文的状态码 状态码用来告诉HTTP客户端HTTP服务器是否产生了预期的response.状态码总共只有三位,第一位表示状态类别,总共分五种. (1) 1xx: 是进度通知类状态,意思就是说"请求我已经收到了,或你的请求我正在处理". (2) 2xx: 表示"你的请求我已经成功处理了". (3) 3xx: 即重定向,也就是服务器告诉客户端"你要的资源搬家了,你到某某地方再去找它吧". (4) 4xx: 客户端发来的响应报文里有些错误,比如语法

HTTP请求响应报文&&相关状态码&&GET_POST请求方法 总结

HTTP请求报文: 一个HTTP请求报文由四个部分组成:请求行.请求头部.空行.请求数据 1.请求行   请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔.比如 GET /data/info.html HTTP/1.1 方法字段就是HTTP使用的请求方法,比如常见的GET/POST 其中HTTP协议版本有两种:HTTP1.0/HTTP1.1 可以这样区别: HTTP1.0对于每个连接都的建立一次连接一次只能传送一个请求和响应,请求就会关闭,HTTP1.0没有Ho

《图解Http》 2-6章: 基础,报文,状态码,首部。

HTTP协议和Cookie 是stateless协议,自身不对请求和响应之间的通信状态进行保存.但随着技术发展,为了实现保存状态的功能,引入了Cookie技术. Cookie在请求和响应报文中写入信息来控制客户端的状态. Cookie根据从服务器发送的响应报文内的Set-Cookie的首部字段信息,通知客户端保存Cookie. 下次客户端发送请求时,会在报文中加入Cookie值. 服务器收到报文后,检查Cookie,确认是哪个客户端发过来的连接请求,然后再对比服务器上的记录,得到之前的状态信息.

HTTP协议和几种常见的状态码

前言:明知山有釜,偏向釜山行-----电影<釜山行> --------------------------------------------------------------------------------------------------------> 今天给大家简单的说一下,http协议以及几种常见的状态码: 一.http协议 概述: 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必

三、http协议—请求和响应报文的构成

http协议用于客户端和服务器之间的通信,请求访问资源的一方称为客户端,而提供资源响应的一方称为服务器端. 下面就是客户端和服务端之间简单的通信过程 PS:请求必须从客户端建立通信,服务端没收到请求之前不会发送响应 下面先来说说请求的构成: 1)请求方法URI协议/版本  2)请求头(Request Header)  3)请求正文 下面是一个请求的例子: GET/sample.jspHTTP/1.1 Accept:image/gif.image/jpeg,*/* Accept-Language:

HTTP请求和响应3:状态码(status)

HTTP状态码被分为了五大类: 100-199:信息提示 200-299:成功 300-399:重定向 400-499:客户端错误 500-599:服务器错误 状态码为客户端提供了一种理解事务处理结果的便捷方式,下面对每一种状态码做了一个总结. 100-199----信息性状态码 信息性状态码用于信息提示,已定义的信息性状态码如下: 1)100 原因短语:Continue 含义:说明收到了请求的初始部分,请客户端继续,发送了这个状态码之后,服务端在收到请求之后必须进行响应.客户端需要发送一个携带

客户端请求、服务器响应及其HTTP状态码

一JSP客户端请求 当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取的信息,因为这些信息是作为HTTP信 息头的一部分来传送的.我们可以查阅HTTP协议来获得更多的信息. 下表列出了浏览器端信息头的一些重要内容,在以后的网络编程中将会经常见到这些信息: (1)HttpServletRequest类 request对象是javax.servlet.http.HttpServletRequest类的实例.每当客户端请求一个页面时,JSP引擎就会产 生一个新的对象来代表这个请求. re

服务器响应HTTP请求状态码(转)

当服务器响应HTTP请求时,其状态行的信息为HTTP的版本号,状态码,及解释状态码的简单说明: 1.客户方错误: 100 客户必须继续发出请求 101 客户要求服务器根据请求转换HTTP协议版本 2.成功: 200 OK 201 已创建 202 接收 203 非认证信息 204 无内容 205 重置内容 206 部分内容 3.重定向: 300 多路选择 301 永久转移 302 暂时转移 303 参见其它 304 未修改(Not Modified) 305 使用代理 4.客户方错误: 400 错

Java Web学习(1): 客户端请求、服务器响应及其HTTP状态码

一JSP客户端请求 当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取的信息,因为这些信息是作为HTTP信 息头的一部分来传送的.我们可以查阅HTTP协议来获得更多的信息. 下表列出了浏览器端信息头的一些重要内容,在以后的网络编程中将会经常见到这些信息: (1)HttpServletRequest类 request对象是javax.servlet.http.HttpServletRequest类的实例.每当客户端请求一个页面时,JSP引擎就会产 生一个新的对象来代表这个请求. re