实验目的:
1.熟悉网络协议分析软件的使用;
2.学会抓包和过滤,并能对抓取的数据进行简单分析。
实验设备和环境:
实验过程及步骤:
1.根据实验拓扑图完成实验环境的搭建;
2.根据相关信息进行网络配置,此处可以自己发挥,并可以故意设置错误,通过抓包来分析错误的原因,并解决此问题;
3.完成web服务器的设置:
4.完成DNS的设置:
5.抓取浏览器的数据,观察DNS服务器及web服务器开启和没开启时的数据有何不同,并进行简单的解释说明;
当DNS服务器没有开启,WEB服务器开启时:
上述结果表明,启动DNS服务器失败,无法解析域名,数据获取失败。
DNS服务器开启,WEB服务器没有开启时:
上述结果表明,启动了DNS服务器,但连接WEB服务器失败,数据获取失败。
当两个服务器都开启时:
成功接收到了文件。这个响应报文的状态码是200,表示请求成功。服务器软件是ENSP HttpServer,认证的信息是华为,响应体是一个长度为576523字节、媒体类型为HTML的文本内容。
得到了发送的数据和http协议的包。
6.分析HTTP协议,了解应用层协议实现的一些细节问题。
HTTP请求是客户端向服务器发送的请求消息。HTTP协议定义了几种常用的请求方法,包括GET、POST、PUT、DELETE等。这些方法用于指定客户端希望服务器执行的操作。当服务器收到HTTP请求后,会根据请求方法、URL等信息进行相应的处理,并返回对应的响应信息给客户端。
HTTP响应是Web服务器向客户端返回的数据。它包括一个状态行、响应头和响应体。状态行包含了HTTP版本、状态码和相应的状态信息。状态码是一个三位数的数字,用于指示请求的处理结果。常见的状态码包括200表示成功,404表示资源未找到,500表示服务器内部错误等。
本次请求使用GET请求方法,使用HTTP/1.1协议版本。
请求头部包括以下信息:
Accept: 表示客户端可接受的响应内容类型,这里是指接受任意类型。
Accept-Language: 客户端接受的语言类型,这里是中文。
User-Agent: 客户端的浏览器信息,这里是Mozilla/4.0。
Accept-Encoding: 客户端接受的内容压缩方式,这里是gzip和deflate。
Host: 请求的主机名,这里是www.jd.com。
Connection: 指示客户端请求响应后的连接状态,这里是Keep-Alive,表示保持连接。
如图,HTTP报文携带576523 字节,而TCP报文段数据共576654字节,相减为131字节,即为HTTP报文请求行、请求头的长度。
实验总结:
遇到问题:抓包抓不到信息。
解决办法:没有获取地址,获取后问题解决。
收获和体会:
从实验中学习了HTTP协议的工作原理。在实验中我们可以清晰地看到HTTP请求和响应报文的结构,以及报文中的各个字段和数据。这有助于我们理解HTTP协议是如何在客户端和服务器之间进行通信的。
HTTP协议是无状态的、基于请求-响应的协议。在实验中,我们可以看到每个HTTP请求和响应都是独立的,服务器不会保存任何关于客户端的状态信息,这需要客户端自己保存和传递状态。
通过实验,我们可以学会如何分析和解读一个HTTP响应报文。从状态行中获取响应的状态码和原因短语,从响应头中获取关于响应的一些元数据信息,例如响应的类型、长度、日期等,最后通过解析响应体来获取实际的响应内容。