目录
☀️| 一、实验目的
☀️| 二、实验环境
☀️| 三、实验原理
☀️| 四、实验内容
⭐️练习1——页面访问
⭐️练习2——页面提交
⭐️练习3——获取页面信息
☀️| 五、实验结果
⭐️练习1:
⭐️练习2:
⭐️练习3:
☀️| 六、思考题
1. 观察HTTP报文,说明HTTP报文包括哪些字段
2. 简述URL的作用
1.掌握以太网的报文格式
2.掌握MAC地址的作用
3.掌握协议编辑器和协议分析器的使用方法
图7-1 网络拓扑一
HTTP(超文本传输协议)主要用于访问万维网上的数据。协议以普通文本、超文本、音频、视频等格式传输数据。之所以称为超文本协议,原因是在应用环境中,它可以快速的在文档之间跳转。HTTP在熟知端口80上使用TCP服务。
HTTP报文有两种一般的类型:请求和响应。这两种类型的报文格式几乎是相同的。报文格式如下图7-1所示:
图7-1 HTTP报文格式
HTTP报文中的方法是客户端向服务器端发出的实际命令和请求。常用HTTP方法如下表所示:
表7-1 HTTP方法
在响应报文中,请求行被替换为状态行,由3位数字组成,表示请求是否被理解或被满足。HTTP协议的状态码如下表所示:
表7-2 HTTP状态码
HTTP支持代理服务器(proxy server)。代理服务器保留对最近请求的响应的副本。在有代理服务器的情况下,HTTP客户把请求发送给代理服务器。代理服务器检查它的高速缓存。如果在高速缓存中有这个响应,代理服务器就直接应答客户的请求;反之,如果在高速缓存中没有这个响应,代理服务器就把请求发送给相应的HTTP服务器,当HTTP服务器的响应到达代理服务器时,代理服务器将该响应转发给客户,同时将该响应存储到高速缓存中,以便以后为其它客户的请求使用。
代理服务器减少了原始服务器的负荷,减小了通信量,也减小了延时。但是,由于使用了代理服务器,客户必须配置成接入到代理服务器而不是那个目标服务器。
各主机打开协议分析器,进入相应的网络结构并验证网络拓扑的正确性,如果通过拓扑验证,关闭协议分析器继续进行实验,如果没有通过拓扑验。
本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。现仅以主机A、B所在组为例,其它组的操作参考主机A、B所在组的操作。
1. 主机A清空IE缓存。
2. 主机B启动协议分析器开始捕获数据,并设置过滤条件(提取HTTP协议)。
3. 主机A启动IE浏览器,在“地址”框中输入http://172.16.1.200/experiment,并连接。
4. 主机B停止捕获数据,分析捕获到的数据,并回答以下问题:
● 本练习使用HTTP协议的哪种方法?简述这种方法的作用。
● 根据服务器发给客户的HTTP数据内容,填写下表。
表13-3 实验结果
目的主机地址 |
|
源URL |
|
服务器类型 |
|
传输的文本类型 |
|
访问时间 |
● 参考“会话分析”视图显示结果,绘制此次访问过程的报文交互图(包括TCP协议)。
● 简述TCP协议和HTTP协议之间的关系。
本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。现仅以主机A、B所在组为例,其它组的操作参考主机A、B所在组的操作。
1. 主机B启动协议分析器开始捕获数据,并设置过滤条件(提取HTTP协议)。
2. 主机A启动IE浏览器,在“地址”框中输入“http://172.16.1.200/experiment/post.html”,并连接。在返回页面中,填写“用户名:6666”和“密码:6666”,点击[确定]按钮。
3. 主机B停止捕获数据,分析捕获到的数据,并回答以下问题:
● 本练习的提交过程使用HTTP协议的哪种方法?简述这种方法的作用。
● 此次通信分几个阶段?每个阶段完成什么工作?
● 参考“会话分析”视图显示结果,绘制此次提交过程的报文交互图(包括TCP协议)。
本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。现仅以主机A、B所在组为例,其它组的操作参考主机A、B所在组的操作。
1. 主机A启动“实验平台工具栏中的TCP工具”。
2. 主机B启动协议分析器开始捕获数据,并设置过滤条件(提取HTTP协议)。
3. 主机A在“TCP工具”上,选中“客户端”单选框,设置“IP地址”为服务器IP(172.16.1.200);设置“端口”为80;单击[连接]按钮来和服务器建立连接。
4. 主机A在“TCP工具”上,设置“发送数据(文本)”为以下内容:
HEAD /experiment/ HTTP/1.1
Host: 172.16.1.200
点击[发送]按钮。 (注:
点击[断开]按钮,断开TCP连接(由于不同http版本所遵循的规范不同,有些HTTP服务器不需要断开操作)。
5. 主机A在“TCP工具”上的“显示数据(文本)”中察看服务器返回信息。
6. 主机B停止捕获数据,分析捕获到的数据。
目的主机地址 |
172.16.1.138 |
源URL |
http://172.16.1.139/experiment |
服务器类型 |
Web服务器 |
传输的文本类型 |
HTTP |
访问时间 |
128 |
请求头(Request):
Accept:text/html application/xml 告诉服务器客户端浏览器这边可以出里什么数据;
Accept-Encodeing:gzip 告诉服务器我能支持什么样的压缩格式
accept-language:告诉服务器浏览器支持的语言
Cache-control:告诉服务器是否缓存
Connection:keep-alive 告诉服务器当前保持活跃(与服务器处于链接状态)
Host:远程服务器的域名
User-agent:客户端的一些信息,浏览器信息 版本
referer:当前页面上一个页面地址。一般用于服务器判断是否为同一个域名下的请求
返回头(response-header):
cache-control:private/no-cache; 私有的不需要缓存/no-cache也不需要缓存
connection:keep-live; 服务器同意保持连接
content-Enconding:gzip;除去头的剩余部分压缩返回格式
content-length:内容长度
content-type:text/css;返回内容支持格式
Date: 时间
server:ngnix 服务器类型
答:url的中文意思是统一资源定位符,说白了就是我们常说的“网址”。通过URL可以到达任何一个地方寻找需要的东西,比如文件、数据库、图像、新闻组等等,可以这样说,URL是Internet上的地址簿。