一、实验名称超文本传输协议Http分析
二、实验目的:
1. 掌握使用Wireshark分析俘获HTTP协议的基本技能;
2. 深刻理解HTTP重要的工作机理和过程。
三、实验内容和要求
1、 Http协议的Get/Resonse互动机制;
2、 Http协议的分组格式;
3、如何利用Http传输Html文件;
4、如何利用Http传输图片、动画等嵌入式文件;
5、观察Http的安全性能。
四、实验环境
1)与因特网连接的计算机
2)操作系统为Windows 8.1
3)安装有协议分析仪Wireshark
4)IE浏览器等软件
五、操作方法与实验步骤
1. Http 的基本请求 /响应互动机制
本实验通过访问一个最简单的页面展开,即该 html 文件中不引用任何其它嵌入式文件(如图片、视频等 )。操作步骤如下:
1、打开 IE 浏览器;
2、打开 Wireshark软件,打开抓包菜单中的网络接口子菜单,从中选择本机使用的网络接口。
3、切入包捕获界面后,在过滤栏中输入 http && ip.dst==128.119.245.12 ||ip.src==
128.119.245.12,即只观察与 128.119.245.12交互的 http 分组。
4、在 IE 浏览器输入:
wireshark-;此时浏览器应该会显示一个最简单的 html 页面(只有一行 )。
5、此时, Wireshak软件应该抓取的Http数据包如图63所示:
图63访问 HTTP-wireshark- 后的Wireshark 显示界面从上图中可观察到总共捕获到四个 http 包,其中,包括两对 Http 的 Get分组(由本机浏览器向服务器 发出的请求 )以及服务器返回的响应分组。需要注意的是,第一轮请求与回复请求的是具体的页面;而第二轮请求与回复涉及的却是一个favicon.ico 文件。分组内容展示窗口中可以观察这两个分组的详细信息。从展开的分组内容中可以看出: Http 包是经由 Tcp协议传输,而 Tcp 又是附加在IP 数据包的基础上,后者又附加在一个以太网帧内。以第一轮分组为观察目标,试着回答如下问题:
(1)你的浏览器运行的是什么协议版本? Http1.0 还是 http1.1? 服务器运行的又是什么版本呢?
答:我的浏览器运行的是Http1.1版本(Request Version: HTTP/1.1)。服务器运行的是Version 4 。
(2)你的浏览器告诉服务器它能够接受的语言是?
答:Accept-Language: zh-CN\r\n(即中文简体)
(3)你浏览器所在的 IP 是?服务器的 Ip 又是?
答:浏览器的IP是192.168.1.103,服务器的IP是128.119.245.12。
(4)服务器返回给浏览器的状态代码是?这次访问成功了么?
答:状态代码是Status Code: 200 。这次的访问成功了(Response Phrase: OK)。
(5)浏览器所访问的 Html 文件上次被修改的时间是?
答:Date: Thu, 15 Jun 2017 07:51:16
(6)间隔两分钟后再重新访问该 Html 文件(即刷新 IE 浏览器 ),再次查看 Html文件上被修改的时间是?对比与问题 5的答案,你观察出了什么结论?
答:Date: Thu, 15 Jun 2017 07:53:16。结论是最后的修改时间会随着抓包的时间不同而改变
(7)服务器返回给浏览器的分组的内容长度是多少?
答:128个字节。
2. Http 附加条件判断的请互动机制
我们知道,当前主要浏览器都有一个缓存机制,即将刚访问的页面内容保存在 IE 缓存区。在此基础上,当用户重新访问该页面时,浏览器会智能地发出一个带条件判断的 Http 请求,即请求时告诉服务器自己所缓存文件的时间戳。为了详细观察这一带条件判断请求互动机制,请进行如下操作:
1、打开 IE 浏览器,并清除 IE 浏览器的所有缓存文件。
2、打开 Wireshark软件,打开抓包菜单中的网络接口子菜单,从中选择本机使用的网络接口。
3、切入包捕获界面后,在过滤栏中输入 http && ip.dst==128.119.245.12 ||ip.src== 128.119.245.12,即只观察与 128.119.245.12交互的 http 分组。
4、在IE地址栏输入: HTTP-wireshark-,回车后访问该地址。
5、十秒后,点 IE 刷新栏,重新访问该地址。
6、将观察到的 Wireshark软件结果截图保存,如图63所示。
图 64 访问 HTTP-wireshark- 后的Wireshark 显示界面
观察实验结果,回答以下问题 :
(1)观察浏览器发出的第一个 Get请求,你在里面看到了 IF-MODIFIED-SINCE字段么? 答:没有看到IF-MODIFIED-SINCE 字段。
(2)观察服务器对应的第一个 Response回复,它返回了所请求的 html 文件么 ? 答:返回了。如图65所示
图65 服务器返回所请求的 html 文件
(3)观察第二个浏览器发出的第二个 Get请求,你在里面看到 IF-MODIFIED-SINCE 字段么 ?如果有,它携带的具体信息是?
答:依然没有看到IF-MODIFIED-SINCE 字段。
(4)服务器所回复的第二个 Response回复的状态码是?它携带了浏览器所请求的Html 文件么?如果没有,请作出相应的解释。
答:Status Code: 404。他没有鞋带浏览器所。请求的HTML文件。因为回复字段是Not Found,表示并没有找到浏览器所请求的文件。
3. 通过 Http 获取大文件
(1)启动浏览器,将浏览器的缓存清空。
(2)启动Wireshark分组俘获器,开始Wireshark分组俘获。
(3)在浏览器地址栏中输入如下网址:
浏览器将显示一个相当大的美国权力法案
(4)停止Wireshark分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
在本节实验中,实体数据是指HTTP-wireshark-这个整html 文件;而该文件的大小为4861Byte,超过了一个Tcp 包可以容纳的长度(本机器为1460 Byte加上头部的20个字节)。因此,服务器将整个http 响应包拆成四个长度分别为1440\1440\1440\541的四个TCP 分组。在传输过程中,由于所经历的路径不一致,这四个分组(26,27,29,31)并非按原先的发送顺序到达,而存在错序的情况!因此,浏览器需要将这四个分组重新组合后开成一个完整的Http 响应包。