《计算机网络》实验报告七 HTTP协议分析与测量
目 录
1、实验目的
2、实验环境
3、实验内容
4、实验结果与分析
4.1 使用tcpdump命令抓包
4.2 HTTP字段分析
5、实验小结
5.1 问题与解决办法:
5.2 心得体会:
1、实验目的
1、了解HTTP协议及其报文结构
2、了解HTTP操作过程:TCP三次握手、请求和响应交互
3、掌握基于tcpdump和wireshark软件进行HTTP数据包抓取和分析技术
2、实验环境
1、硬件要求:阿里云云主机ECS 一台、笔记本电脑一台
2、软件要求:Linux/ Windows 操作系统
3、实验内容
使用wget下载新疆大学主页www.xju.edu.cn,利用tcpdump抓包并利用wireshark分析。
1. 浏览器运行HTTP版本1还是1.1?服务器运行的是什么版本的HTTP?
2. 你的电脑的IP地址是什么?服务器呢?
3. 从服务器返回到浏览器的状态代码是什么?
4. 您在服务器上检索到的HTML文件是在什么时候修改的?
5. 有多少字节的内容被返回到浏览器?
6. 除以上已回答过的字段外,头部还有哪些字段?在数据包内容窗口中检查原始数据,是否有未在数据包列表中显示的头部?
4、实验结果与分析
4.1 使用tcpdump命令抓包
1. 由于开始时并没有wget命令,所以使用如下命令进行wget操作命令的下载。
yum install wget
2. 使用wget命令下载新疆大学主页www.xju.edu.cn。
wget www.xju.edu.cn
3. 使用tcpdump命令抓取www.xju.edu.cn网站的数据包,并将所抓取的数据包保存在http.pcap文件中。
tcpdump -i eth0 -w http.pcap
4.2 HTTP字段分析
1. 使用wireshark打开保存的http.pcap文件,并对数据包进行相关的操作。
2. 使用过滤器得到与www.xju.edu.cn实现通信的http数据包时在应用显示过滤器输入以下语句。
http and ip.addr==111.115.76.75
3. 浏览器运行HTTP版本1还是1.1?服务器运行的是什么版本的HTTP?
浏览器运行HTTP版本为1.1
服务器运行的是1.1版本的HTTP
4. 你的电脑的IP地址是什么?服务器呢?
电脑的IP地址为:192.168.43.199
服务器的IP地址为:111.115.76.75
5. 从服务器返回到浏览器的状态代码是什么?
从服务器返回到浏览器的状态代码是200,表示成功处理请求
6. 您在服务器上检索到的HTML文件是在什么时候修改的?
从服务器上检索到的HTML文件时在2023年5月11日 周四 03:38:58修改的
7. 有多少字节的内容被返回到浏览器?
有107081 bytes的内容被返回浏览器
8. 除以上已回答过的字段外,头部还有哪些字段?
在HTTP的请求报文中还有:Host,Connection,User-Agent,Accept,Referer,Accept-Encoding,Accept-Language,Server等
9. 在数据包内容窗口中检查原始数据,是否有未在数据包列表中显示的头部?
没有未在数据包列表中显示的头部
5、实验小结
5.1 问题与解决办法:
1. 问题一:使用tcpdump进行数据包的抓取时出现如下提示此命令未找到:
解决方法:由于命令输入错误导致,数据包的抓取命令为tcpdump,而不是tcpdnmp,将对应命令进行更改后错误消失。
2. 问题二:对指定网络接口的数据包进行抓取时出现如下提示语法错误:
解决方法:由于命令键入不完整所导致,指定网络接口所需要的参数是-i,在eth0前方添加-i后错误消失。
3. 问题三:使用tcpdump抓取所有的数据包时一直在抓取,不能够自动停止抓包:
解决方法:使用Ctrl+c就可以终止运行的命令,进而就可以停止抓包。
4. 问题四:使用Wireshark对抓取的数据包进行过滤时出现如下提示输入框出现红色:
解决方法:由于过滤命令输入错误,在过滤地址时使用ip.addr,将输入内容中的id.addr改为ip.addr后红色报错消失。
5. 问题五:使用Wireshark对抓取的数据包进行多个条件同时成立过滤时出现如下提示输入框出现红色:
解决方法:由于多个条件同时成立时需要使用and进行连接,但是输入命令时并没有使用and进行连接所导致,在输入内容中加入and后红色报错消失。
6. 问题六:使用Wireshark对抓取的数据包进行过滤时出现如下提示输入框出现红色:
解决方法:由于过滤命令对大小写敏感导致输入错误,在过滤HTTP时使用HTTP,将输入内容中的HTTP改为http后红色报错消失。
7. 问题七:使用wget命令时出现如下提示此命令未找到:
解决方法:由于系统中没有wget命令所导致,需要在使用此命令前通过 yum install wget 命令进行安装。
5.2 心得体会:
1、HTTP是一个通用的Web协议,它在Web应用程序中扮演着关键的角色。
2、HTTP不仅是一种协议,而且是Web应用程序开发中的核心要素之一。
3、HTTP是无状态的,这意味着服务器和客户端之间的每个请求和响应都是独立的,并且服务器不会保留关于任何先前请求或响应的状态信息。
4、为了处理具有状态的Web应用程序,HTTP引入了Cookie机制。
5、HTTP是基于请求/响应模型的,客户端发送请求消息,服务器发送响应消息。
6、每个消息都由一个起始行、一组HTTP头部字段和一个可选的消息体组成。
7、请求消息用于请求服务器执行特定的操作,而响应消息用于回显服务器的执行结果。
8、HTTP支持多种请求方法:GET、POST、PUT等来要访问的。
9、HTTP支持缓存,缓存可以高性能减少延和带宽消。HTTP缓存使用HTTP头部控制缓存。
10、HTTP使用状态码表示请求和响应的结果。状态码由三位数字组成,例如200表示成功、404表示未找到、500表示服务器内部错误等。
11、HTTP头部包含的有关消息可以在客户端和服务器之间传递附加信息。
12、HTTP协议可以帮助我们理解Web应用的基本工作原理。
13、HTTP协议是一个基于请求和响应模式的协议,它使用头部字段来传递关于请求和响应的元数据。
14、Accept:指示客户端能够处理的媒体类型。
15、Accept-Encoding:指示客户端能够处理的压缩类型,服务器可以根据该字段来压缩传输的数据。
16、Cookie:表示客户端已创建的会话标识。
17、Host:指定被请求资源的服务器的域名和端口号。
18、User-Agent:客户端标识,用于标识客户端的类型、系统、浏览器等信息。
19、Content-Encoding:指示服务器对响应实体执行的压缩类型。
20、Content-Length:指示响应实体的长度(单位为字节)。
21、Content-Type:指示响应实体的MIME类型。
22、Set-Cookie:设置响应的cookie。
23、Server:指示HTTP服务器的软件名称和版本号。
24、Cache-Control:控制缓存的行为,例如缓存的最大年龄、是否进行重新验证、是否跳过代理缓存等。
25、Connection:指示客户端或服务器是否关闭连接。
26、Date:指示响应的日期和时间。
27、Transfer-Encoding:指示传输编码。
28、上述HTTP头部字段是HTTP协议中的常用字段,了解HTTP头部字段的含义和用法可以帮助我们更好地理解HTTP工作的过程及优化网络应用程序的性能。