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

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

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

GET方法:

http请求报文:
wireshark抓包--简要分析HTTP协议_第1张图片
http响应报文:
wireshark抓包--简要分析HTTP协议_第2张图片

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

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

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

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

HTTP请求报文分析:
wireshark抓包--简要分析HTTP协议_第5张图片
与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响应报文:
wireshark抓包--简要分析HTTP协议_第6张图片 * 注:与get方法的响应报文类似,分析略。

你可能感兴趣的:(计算机网络学习笔记,http,wireshark,计算机网络)