wireshark抓包--简要分析HTTP协议

Posted 狱典司

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wireshark抓包--简要分析HTTP协议相关的知识,希望对你有一定的参考价值。

使用工具:wireshark
使用方法wireshark使用教学

实验任务<1>
在host OS上访问guest OS中的website,抓获数据包,查看HTTP message,request、response报文交互过程。

GET方法:

http请求报文:
在这里插入图片描述
http响应报文:
在这里插入图片描述

试验任务<2>:
1分析HTTP GET&POST和HTTP Response报文;在GET、POST、Response报文中详细分析各子段组成。

HTTP GET:
请求数据包结构:
在这里插入图片描述
应数据包结构:
在这里插入图片描述
第一行:数据包整体概述;(物理层)
第二行:链路层详细信息,主要的是双方的mac地址;
第三行:网络层详细信息,主要的是双方的IP地址;
第四行:传输层的详细信息,主要的是双方的端口号。
第五行:应用层的详细信息,超文本传输协议(HTTP)

HTTP 请求报文分析:
在这里插入图片描述
第一行为请求行,有三个字段:方法字段、URI字段和HTTP版本字段;该请求报文的请求行中:
1.方法字段为GET;
2.URI字段为index2.php表明该浏览器正在请求对象/index2.php;
3.HTTP版本字段为 HTTP/1.1,表明浏览器实现的是HTTP/1.1版本。

请求行的后继行为首部行:
Host:172.20.10.5指明了对象所在主机。
User-Agent:curl/7.55首部行用来指明用户代理,即向服务器发送请求的浏览器为curl指令。

HTTP响应报文分析:
在这里插入图片描述
第一行为初始状态行,含三个字段:协议字段、状态码和相应状态信息。在该状态行指示正在使用HTTP/1.1,并且一切正常(即服务器已经找到并正在发送请求的对象)。
状态行后继的首部行中:
Date:行表示服务器产生并发送该响应报文的时间和日期;
Server:行表示该报文是由一台Apache Web服务器产生的;
X-Powered-By: 行表示访问网站的程序是用php开发的
Content-Length:行指定了被发送对象中的字节数为321;
Content-Type:行指示了实体体中的对象是html文本。
之后的就是实体体,为报文的主要部分。

HTTP POST:
注:http post与http get类似

HTTP请求报文分析:
在这里插入图片描述
与HTTP GET请求报文类似,此外:
Cache-Control: max-age=0 行表明max-age>0 时直接从游览器缓存中 提取
max-age<=0 时向server 发送http请求确认 ,该资源是否有修改,有则返回200 ,无则返回304.(相比较于Cache-Control:no-cache——强制每次请求直接发送给源服务器,而不经过本地缓存版本的校验。这对于需要确认认证应用很有用(可以和public结合使用),或者严格要求使用最新数据 的应用(不惜牺牲使用缓存的所有好处)通俗解释:浏览器通知服务器,本地没有缓存数据)

Connection: Keep-Alive 从HTTP/1.1起,浏览器默认都开启了Keep-Alive,保持连接特性。简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的TCP连接。但是Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。

HTTP响应报文:
在这里插入图片描述 * 注:与get方法的响应报文类似,分析略。

以上是关于wireshark抓包--简要分析HTTP协议的主要内容,如果未能解决你的问题,请参考以下文章

CMCC portal 协议wireshark 抓包分析

CMCC portal 协议wireshark 抓包分析

CMCC portal 协议wireshark 抓包分析

#WEB安全基础 : HTTP协议 | 0x7 学会使用wireshark分析数据包

MAC Wireshark抓包IOS

Wireshark抓包分析TCP 3次握手4次挥手过程