计算机科学与技术学院实验报告
实验名称
实验六 超文本传送协议HTTP
重点难点
重点:超文本传送协HTTP; 难点:超文本传送协HTTP,正确分析其内容。
实验目的
1了解超文本传送协议HTTP;
2 学习超文本传送协议HTTP,并正确分析其内容。
实验环境
Windows 操作系统、Wireshark网络分析软件、实验文件“HTTP分析.cap”、可以接入互联网的主机
实验步骤
-
超文本传送协议HTTP
-
为了高效率地完成超文本文件的传输,需要用HTTP协议来传送一切必须的信息。
-
从层次的角度看,HTTP是面向事务的(transaction-oriented)应用层协议,它是万维网上能够可靠地交换超文本文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
-
HTTP 1.0 协议是无状态的(stateless),使用cookie标识用户。
-
HTTP协议本身也是无连接的,虽然它使用了面向连接的 TCP向上提供的传输层服务,交换HTTP前不需建立HTTP连接。
2.抓取HTTP分组,并正确分析其内容
2.1依次执行以下命令:
ipconfig /flushdns ;删除本机上的DNS域名解析列表
清除IE内的页面缓存;
启动Ethereal,扑获当前网络接口的数据分组。
在IE浏览器内执行以下命令:
www.google.com The GNU Operating System and the Free Software Movement;
结束扑获,并保存该文件,为“HTTP分析.cap” ;
2.2“HTTP分析.cap”的解析
分组1、2完成的是www.google.com的域名解析,分组3、4、5完成的是IE浏览器客户端与google服务器的TCP连接(TCP连接需要3次握手协议完成,见第3章的有关内容),以便执行后续的HTTP协议。
分组6、7分别是客户浏览器发送的HTTP Get请求和服务器的响应,请参考教材“HTTP报文格式”解析这2个HTTP报文的详细信息内容。
编辑
图3 分组6是客户浏览器发送的HTTP Get请求
编辑
图4 分组7是服务器发送的HTTP响应
问题一
1. 分析分组21-22完成的任务。
回答
分组21、22完成的是www.gnu.org的域名解析。客户端查询DNS服务器以获取 www.gnu.org 的IP地址。DNS服务器响应,提供 www.gnu.org 的IP地址199.232.41.10以及 gnu.org 的额外名称服务器信息。这些分组是DNS解析过程的一部分,这是HTTP通信的前提。
问题二
2. 分析分组23-25完成的任务。
回答
分组23 - 25完成的是IE浏览器客户端与gnu服务器的TCP三次握手连接过程,用于建立客户端与服务器之间的可靠连接。
第23号分组: 客户端发送SYN请求建立连接。
第24号分组: 服务器响应SYN-ACK,表示同意建立连接并确认客户端的请求。
第25号分组: 客户端发送ACK,确认服务器的响应,并完成连接的建立。
这三次握手之后,客户端和服务器之间的TCP连接正式建立,可以开始传输数据。
问题三
3.参考教材“HTTP报文格式”的解析方法,解析分组6、7、8、19的内容。(首部字段名的语义可查阅有关HTTP文档。)
回答
- 分组6
编辑
请求行 (Request Line):
GET / HTTP/1.1 表示使用GET方法请求服务器的根目录,使用HTTP/1.1协议。
请求头 (Request Headers):
Host: 指定请求的目标主机 www.google.com。
User-Agent: 指定客户端的用户代理(浏览器)信息 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007。
Accept: 指定客户端能够处理的内容类型 text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1。
Accept-Language: 指定客户端希望接收的语言 en-us,en;q=0.5。
Accept-Encoding: 指定客户端支持的内容编码 gzip,deflate。
Accept-Charset: 指定客户端支持的字符集 ISO-8859-1,utf-8;q=0.7,*;q=0.7。
Keep-Alive: 指定连接保持活动的时间 300秒。
Connection: 指定连接类型为 keep-alive,即保持连接。
Cookie: 客户端发送的Cookie数据 PREF=ID=2922596a77b805c7:TM=1073520455:LM=1073520455:S=Ycw7Yx3HeW-X0ndK。
- 分组7
编辑 响应头:
状态行:HTTP/1.1 200 OK(表示请求成功)
Cache-Control:private(指示响应是私有的,不应被缓存)
Content-Type:text/html(响应内容的类型是HTML)
Content-Encoding:gzip(内容使用gzip压缩)
Server:GWS/2.1(服务器软件的名称和版本)
Content-Length:1216(未压缩前的响应内容长度)
Date:Thu, 08 Jan 2004 00:11:54 GMT(响应生成的日期和时间)
响应内容:
响应内容被gzip压缩,原始长度为1216字节,解压后长度为3425字节。
响应内容是一个HTML页面的开始部分,包括, , , , 和标签。
- 分组8
编辑
请求行:
方法:GET(请求方法)
资源:/images/logo.gif(请求的资源路径)
HTTP版本:HTTP/1.1(使用的HTTP协议版本)
请求头:
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007(发起请求的浏览器信息)
Accept:image/png,image/jpeg,image/gif;q=0.2,/;q=0.1(客户端能够接受的媒体类型,优先级为PNG、JPEG、GIF,然后是其他类型)
Accept-Language:en-us,en;q=0.5(客户端能够接受的语言,优先级为美式英语,其次是英语)
Accept-Encoding:gzip,deflate(客户端能够接受的压缩格式)
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.7(客户端能够接受的字符集)
Keep-Alive:300(请求保持连接打开的时间)
Connection:keep-alive(请求保持连接打开状态)
Referer:www.google.com/(引用页,即用户从哪个…
Cookie:PREF=ID=2922596a77b005c7:TM=1073520455:LM=1073520455:S=Ycw7Yx3HeW-X0ndK(发送的Cookie信息)
Cookie对:
PREF=ID=2922596a77b005c7:TM=1073520455:LM=1073520455:S=Ycw7Yx3HeW-X0ndK(具体Cookie的值,包含了ID、时间戳等信息)
其他信息:
请求的完整URI:www.google.com/images/logo…
这是第二个HTTP请求([HTTP request 2/2]),前一个请求在帧6([Prev request in frame: 6]),对应的响应在帧19([Response in frame: 19])。
- 分组19
编辑
状态行:
版本:HTTP/1.1
状态码:200
状态信息:OK
响应头部:
Content-Type:image/gif(响应内容的类型是GIF图片)
Last-Modified:Fri, 05 Sep 2003 02:25:37 GMT(资源最后被修改的日期和时间)
Expires:Sun, 17 Jan 2038 19:14:07 GMT(响应的过期时间)
Server:GWS/2.1(服务器软件的名称和版本)
Content-Length:8558(响应体的长度,即图片文件的大小)
其他信息:
Date:Thu, 08 Jan 2004 00:11:54 GMT(响应生成的日期和时间)
响应是第二个HTTP响应([HTTP response 2/2]),与前一个请求的时间差为0.076334秒。
前一个请求在帧6([Prev request in frame: 6]),前一个响应在帧7([Prev response in frame: 7]),对应的请求在帧8([Request in frame: 8])。
请求的URI是www.google.com/images/logo…。
文件数据:
响应体包含了一个GIF图片文件,大小为8558字节。
文件是GIF格式,版本为GIF89a,屏幕宽度为276像素,高度为110像素。
存在全局颜色表,颜色深度为8位每像素。