实验二 利用分组嗅探器(ethereal)分析协议 HTTP
一、 实验目的
分析 HTTP 协议
二、 实验环境
与因特网连接的计算机网络系统;主机操作系统为 windows;Ethereal、IE 等软件。
三、 实验步骤
1、 HTTP GET/response 交互
首先通过下载一个非常简单的 HTML 文件(该文件非常短,并且不嵌入任何对象)。
(1) 启动 Web browser。
(2) 启动 Ethereal 分组嗅探器。在窗口的显示过滤说明处输入“http”,分组列表子窗口
中将只显示所俘获到的 HTTP 报文。
(3) 一分钟以后,开始 Ethereal 分组俘获。
(4) 在打开的 Web browser 窗口中输入一下地址(浏览器中将显示一个只有一行文字的非
常简单的 HTML 文件):
http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file1.html
(5) 停止分组俘获。
窗口如图 1 所示。根据俘获窗口内容,回答“四、实验报告内容”中的 1-6 题。
图 1 分组俘获窗口
2、 HTTP 条件 GET/response 交互
(1) 启动浏览器,清空浏览器的缓存(在浏览器中,选择“工具”菜单中的“Internet
选项”命令,在出现的对话框中,选择“删除文件”)。
(2) 启动 Ethereal 分组俘获器。开始 Ethereal 分组俘获。
(3) 在 浏 览 器 的 地 址 栏 中 输 入 以 下 URL:
http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file2.html,你的浏览
器中将显示一个具有五行的非常简单的 HTML 文件。
(4) 在你的浏览器中重新输入相同的 URL 或单击浏览器中的“刷新”按钮。
(5) 停止 Ethereal 分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中
将只显示所俘获到的 HTTP 报文。
根据操作回答“四、实验报告内容”中的 7-10 题。
3、 获取长文件
(1) 启动浏览器,将浏览器的缓存清空。
(2) 启动 Ethereal 分组俘获器。开始 Ethereal 分组俘获。
(3) 在 浏 览 器 的 地 址 栏 中 输 入 以 下 URL:
http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file3.html,浏览器将
显示一个相当大的美国权力法案。
(4) 停止 Ethereal 分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中
将只显示所俘获到的 HTTP 报文。
根据操作回答“四、实验报告内容”中的 11-13 题。
4、 嵌有对象的 HTML 文档
(1) 启动浏览器,将浏览器的缓存清空。
(2) 启动 Ethereal 分组俘获器。开始 Ethereal 分组俘获。
(3) 在 浏 览 器 的 地 址 栏 中 输 入 以 下 URL:
http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file4.html,浏览器将
显示一个具有两个图片的短 HTTP 文件
(4) 停止 Ethereal 分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中
将只显示所俘获到的 HTTP 报文。
根据操作回答“四、实验报告内容”中的 15-16 题。
5、 HTTP 认证
(1) 启动浏览器,将浏览器的缓存清空。
(2) 启动 Ethereal 分组俘获器。开始 Ethereal 分组俘获。
(3) 在 浏 览 器 的 地 址 栏 中 输 入 以 下 URL:
http://gaia.cs.umass.edu/ethereal-labs/protected_pages/HTTP-ethereal-fil
e5.html,浏览器将显示一个 HTTP 文件,输入所需要的用户名和密码(用户名:
eth-students,密码:networks)。
(4) 停止 Ethereal 分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中
将只显示所俘获到的 HTTP 报文。
根据操作回答“四、实验报告内容”中的 17-18 题。
四、 实验报告内容
在实验的基础上,回答以下问题:
(1)你的浏览器运行的是 HTTP1.0,还是 HTTP1.1?你所访问的服务器所运行的 HTTP 版本
号是多少?
(2)你的浏览器向服务器指出它能接收何种语言版本的对象?
(3)你的计算机的 IP 地址是多少?服务器 gaia.cs.umass.edu 的 IP 地址是多少?
(4)从服务器向你的浏览器返回的状态代码是多少?
(5)你从服务器上所获取的 HTML 文件的最后修改时间是多少?
(6)返回到你的浏览器的内容一共多少字节?
-------------------------------------------------------------------------------
(7)分析你的浏览器向服务器发出的第一个 HTTP GET 请求的内容,在该请求报文中,是否
有一行是:IF-MODIFIED-SINCE?
(8)分析服务器响应报文的内容,服务器是否明确返回了文件的内容?如何获知?
(9)分析你的浏览器向服务器发出的第二个“HTTP GET”请求,在该请求报文中是否有一
行是:IF-MODIFIED-SINCE?如果有,在该首部行后面跟着的信息是什么?
(10)服务器对第二个 HTTP GET 请求的响应中的 HTTP 状态代码和状态短语是多少?服务器
是否明确返回了文件的内容?请解释。
-------------------------------------------------------------------------------
(11)你的浏览器一共发出了多少个 HTTP GET 请求?
(12)承载这一个 HTTP 响应报文一共需要多少个包含数据的 TCP 报文段?
(13)与这个 HTTP GET 请求相对应的响应报文的状态代码和状态短语是什么?
-------------------------------------------------------------------------------
(15)你的浏览器一共发出了多少个 HTTP GET 请求?这些请求被发送到的目的地的 IP 地址
是多少?
(16)浏览器在下载这两个图片时,是串行下载还是并行下载?请解释。
-------------------------------------------------------------------------------
(17)对于浏览器发出的最初的 HTTP GET 请求,服务器的响应是什么(状态代码和状态短语)?
(18)当浏览器发出第二个 HTTP GET 请求时,在 HTTP GET 报文中包含了哪些新的字段?