计算机网络实验 超文本传输协议Http分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二超文本传输协议 Http分析
一、实验目的
通过分组捕获软件Wireshark来分析Http协议的以下内容:
1、 Http协议的Get/Resonse互动机制;
2、 Http协议的分组格式;
3、如何利用Http传输Html文件;
4、如何利用Http传输图片、动画等嵌入式文件;
5、观察Http的安全性能。
二、实验条件
1、Wireshark软件
2、IE浏览器
三、实验预习要求:
复习课本 2.2节的相关内容
四、实验内容:
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-labs/HTTP-wireshark-file1.html;此时浏览器应该会显示一个最简单的html页面(只有一行)。
5、此时,你的Wireshak软件应该如下所示:
图1:访问 /wireshark-labs/ HTTP-wireshark-file1.html 后的
Wireshark显示界面
从上图中可观察到总共捕获到四个http包,其中,包括两对Http的Get分组(由本机浏览器向服务器发出的请求)以及服务器返回的响应分组。需要注意的是,第一轮请求与回复请求的是具体的页面;而第二轮请求与回复涉及的却是一个favicon.ico文件。分组内容展示窗口中可以观察这两个分组的详细信息。从展开的分组内容中可以看出:Http包是经由Tcp协议传输,而Tcp又是附加在IP数据包的基础上,后者又附加在一个以太网帧内。以第一轮分组为观察目标,试着回答如下问题:
1.你的浏览器运行的是什么协议版本?Http1.0 还是 http1.1? 服务器运行的又
是什么版本呢?
2.你的浏览器告诉服务器它能够接受的语言是?
3.你浏览器所在的IP是?服务器的Ip又是?
4.服务器返回给浏览器的状态代码是?这次访问成功了么?
5.浏览器所访问的Html文件上次被修改的时间是?
6.间隔两分钟后再重新访问该Html文件(即刷新IE浏览器),再次查看Html
文件上被修改的时间是?对比与问题5的答案,你观察出了什么结论?
7.服务器返回给浏览器的分组的内容长度是多少?
2. Http附加条件判断的请互动机制
从课本2.2.6节中我们知道,当前主要浏览器都有一个缓存机制,即将刚访问的页面内容保存在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地址栏输入:/wireshark-labs/HTTP-wireshark-file2.html,回车后访问该地址。
5、十秒后,点IE刷新栏,重新访问该地址。
6、将观察到的Wireshark软件结果截图保存。
图2 访问 /wireshark-labs/ HTTP-wireshark-file2.html 后的
Wireshark显示界面
观察实验结果,回答以下问题:
1.观察浏览器发出的第一个Get请求,你在里面看到了IF-MODIFIED-SINCE
字段么?
2.观察服务器对应的第一个Response回复,它返回了所请求的html文件么?
3.观察第二个浏览器发出的第二个Get请求,你在里面看到 IF-MODIFIED-
SINCE字段么?如果有,它携带的具体信息是?
4.服务器所回复的第二个Response回复的状态码是?它携带了浏览器所请求
的Html文件么?如果没有,请作出相应的解释。
3. 通过Http获取大文件
上述两个小实验中,我们都只是访问了小而简单的Html文件。这一节实验,我们将通过http来访问长的Html文件。请按以下步骤操作:
1、打开IE浏览器,并清除IE浏览器的所有缓存文件。
2、打开Wireshark软件,打开抓包菜单中的网络接口子菜单,从中选择本机使用的网络接口。
3、切入包捕获界面后,在过滤栏输入http || tcp ,即只观察http、tcp分组。
4、在IE地址栏输入:/wireshark-labs/HTTP-wireshark-file3.html,回车后访问该地址。
5、观察Wireshark的实验结果。
图3 访问 /wireshark-labs/ HTTP-wireshark-file3.html 后的
Wireshark显示界面
从上图(截取自老师机器上进行的实验)可以看出,在Http Get请求后,有一系列的Tcp回复包(即从128.119.245.12发送过来的26,27,29号Tcp分组)。由2.2节的课本知识可知,通常一个Http response分组由一个状态栏、头部行、空行以及实体数据四个部分组成。在本节实验中,实体数据是指HTTP-wireshark-file3.html 这个整html文件;而该文件的大小为4500Byte,超过了一个Tcp包可以容纳的长度(老师机器中的1460 Byte)。因此,服务器将整个http响应包拆成四个长度分别为1460\1460\1460\423的四个TCP分组。在传输过程中,由于所经历的路径不一致,这四个分组(26,27,29,31)并非按原先的发送顺序到达,而存在错序的情况!因此,浏览器需要将这四个分组重新组合后开成一个完整的Http响应包。
试着进一步分析实验结果,并回答如下问题: