2. 响应报文:当收到get或post等方法发来的请求后
在HTTP连接中报文分为请求(request)和响应(response)两种。每种报文在HTTP首部都有差此外字段来标识差此外用途。
1. 请求报文:HTTP协议使用TCP协议进行传输,在应用层协议倡议交互之前,首先是TCP的三次握手。完成了TCP三次握手后,客户端会向处事器发出一个请求报文。请求报文的格局如下图抓包所示:
前三行为请求行,其余部分称为request-header。请求行中的method暗示此次请求使用的是get要领。请求要领的种类对照多,如option,get,post,head,put,delete,trace等,常用的主要是get,pos。Get暗示请求页面信息,返回页面实体;post是请求处事器将指定文档作为请求的url中的隶属实体,简单说,我们常用的在网页中填写表单然后申请等行动就是使用了post要领,填写用户名暗码登录站点就使用了post要领,如下图:
要领之后是URI,暗示请求的页面地点,图中的“/”暗示处事器的根目录。之后是暗示http的版本。
请求行之后是请求首部。首部常见的部分有如下几个:
l Accept:请求的东西类型。如果是“/”暗示任意类型,如果是指定的类型,则会酿成“type/”。
l Accept-Language:使用的语言种类。
l Accept-Encording:页面编码种类。
l Accept-Charset:页面字符集。说到这里,需要解释以下字符集和编码的区别。字符集凡是对应着一种语言,将语言中的所有字符调集起来就可以视为一种字符集,这样我们可以看出,中文并非是一种字符集,因为中文无法使用一些字符来进行暗示;而编码则是将字符转换为计算机所能识另外2进制数的一种方法,例如常说的unicode,UTF-8,ANSI等等,我们在访谒一些国外网站会呈现乱码的原因就是因为我们浏览器所使用的编码与页面所使用的编码不能互相识别。我们常说的BIG5和GB2312都是编码。
l User-Agent:供给了客户端浏览器的类型和版本。
l Host:连接的方针主机,如果连接的处事器长短标准端口,在这里会呈现使用的非标准端口。
l Connection:对付HTTP连接的措置惩罚惩罚,keep-alive暗示连结连接,如果是在响应报文中发送页面完毕就会封锁连接,状态变为close。
2. 响应报文:当收到get或post等要领发来的请求后,处事器就要对报文进行响应。同样,响应报文也分为两部分。
前两行称为状态行,状态行给出了处事器的http版本,以及一个响应代码。响应代码是处事器按照请求进行查找后得到的功效的一种反馈,共有5大类。分袂以1、2、3、4、5开头。1**暗示接收到请求,继续进程,在发送post后可以收到该应答。
2**暗示请求的操纵告成,在发送get后返回。
3**暗示重发,为了完成操纵必需进一步行动。
4**暗示客户端呈现错误。
5**暗示处事器呈现错误。
其余部分称为应答实体。
此中的server暗示处事器软件版本,date标注了当前处事器的时间,connection标明连接封锁,抓包可以发此刻响应返回后处事器向客户端发出fin包单向封锁了连接。Expires暗示在某个时间以前可以不用从头缓存该页面,而cache-control暗示对页面是否进行缓存。Pragma的参数no-cache暗示对页面不进行缓存。而content-type暗示了应答请求后返回的内容类型。Content还有内容长度和内容语言以及内容编码三个项,此中内容长度只有在请求报文中的connection值为keep-alive时才会用到。
3. Cookie:cookie是一种类似缓存的机制,它生存在一个本地的文本文件中,其主要感化是在发送请求时将cookie放在请求首部中发送给处事器,处事器收到cookie后查找本身已有的cookie信息,确定客户真个身份,然后返回相应的页面,cookie的便利之处在于可以连结一种已登录的状态,例如:我们注册一个论坛,每次访谒都需要进行填写用户名和暗码然后登录。而使用了cookie后,如果cookie没有达到过期时间,那么我们只需在第一次登录时填写信息然后登录,以后的访谒就可以省略这一法式。
在HTTP协议中,cookie的交互过程是这样的:首先是三次握手成立TCP连接,然后客户端发出一个http request,这个request中不包罗任何cookie信息。
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31776.html
- 上一篇: TRACE 和 CONNECT 方法
- 下一篇:我们可以对资源进行操作(创建、使用和释放)