石家庄经济学院
《计算机网络原理》
实验报告
实验名称 HTTP原理实验及Wireshark基础
班 级 5131090302
学 号 513109030222
姓 名 谈家鸣
指导教师 赵建立
一、 实验目的:
掌握常用的协议分析器/wirshark的基本应用方法;
分析并验证HTTP的工作过程。
二、 实验要求:
要求能启动,停止捕获数据;能把捕获的数据保存成pcap文件;能利用显示过滤器,显示指定类型的数据包;能对数据包的结构(头+数据)有初步认识。
三、 基本实验步骤:
首先启动Wirshark,并进入捕获状态;其次,利用已有的或自己编写的网络应用程序产生想要的数据流;第三,在得到想要的数据流后,让Wireshark停止捕获;第四步,如果需要,应该把捕获到的数据包序列保存至磁盘,以pacp文件形式;最后,针对捕获到的数据包序列进行分析,可根据具体情况来调用Wireshark提供的种种工具,比如:Display/显示过滤器,FollowTcpStream/跟踪TCP流,FollowUDPStream/跟踪UDP流,FolwGraph/流图分析等。
四、 实验过程与分析:
首先启动Wirshark,选择网卡,并进入捕获状态;如图6-1, 6-2所示
图 6-1 interface
图 6-2 选择设备
启动数据捕获;如图6-3所示
图 6-3 capture-start
访问石家庄经济学院网站,开始捕获数据包;如图6-4 ,6-5所示在开始截取数据包的时候迅速打开需要截取数据的网页,这样减少数据流量,便于后期的筛选。
图 6-4
图 6-5 获取数据包
得到数据包后,停止捕获数据,并从数据包中筛选出http流量包如图6-6
在Filter输入http,筛选出http协议的数据包。总共五个数据包,客户端是192.168.0.115,服务器端是202.206.144.3,后面的info字段都是“get”特征,表示五个包都是web客户端向web服务器发送的http请求消息。
图 6-6 http筛选
选中一条数据流如图所示,跟踪显示它的TCP流
图 6-7 follow tcp
选择了“Follow TCP Stream”之后,弹出的窗口如图所示:红色代表http请求消息,蓝色部分代表http响应消息。
请求行采用get方法,请求服务器的根目录http1.1,目标主机地址www.sjzue.edu.cn,连接状态:活跃,接收的对象:html,xml,images。用户代理mozilla搜狗浏览器代理服务。
响应消息协议http1.1;服务器:nginx;访问时间;内容格式:html,utf-8编码;连接:活跃;内容压缩格式:gzip。
http请求消息如下:
GET / HTTP/1.1
请求行,采用Get方法,请求服务器的根目录,HTTP 1.1
Host: www.sjzue.edu.cn
目标主机:www.sjzue.edu.cn
Connection: keep-alive
表示持久连接
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
客户端可接受对象:html/xml文档
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 BIDUBrowser/6.x Safari/537.31
客户端采用了Mozilla浏览器
Accept-Encoding: gzip,deflate
服务器返回gzip的编码格式
Accept-Language: zh-CN,zh;q=0.8
浏览器支持的语言分别是中文和简体中文,优先支持简体中文
Accept-Charset: iso-8859-1,*,utf-8
浏览器支持的字符编码分别是 iso-8859-1、utf-8 和任意字符,优先顺序是 GB2312、utf-8、*。
Cookie: 用来储存用户和密码之类经常用到的数据
http响应消息如下:
http/1.1 200 OK
http/1.1 表示当前协议为http。1.1是协议版本。200表示成功。
Date: Mon, 02 Jun 20## 06:54:13 GMT
响应时间
Content-Type: text/html
页面内容是html
Transfer-Encoding: chunked
表示输出的内容长度不能确定
Connection: Keep-Alive
表示持久连接
Cache-Control: private
指定请求和响应遵循的缓存机制
Expires: Mon, 02 Jun 20## 06:54:13 GMT
缓存失效时间
Content-Encoding: gzip
服务器返回gzip的编码格式
Server: BWS/1.1
百度web服务器1.1; bws=baidu web server
BDPAGETYPE: 2
BDQID: 0xd1287f7e0008abc0
BDUSERID: 947304246
Set-Cookie: BDSVRTM=76; path=/
页面缓存信息
Set-Cookie: H_PS_PSSID=6221_1439_6854_5225_6756_6504_4760_6018_6675_6697_6439_6772_6450_6820; path=/; domain=.sjzue.edu.cn
页面缓存信息
五、 实验总结
通过wireshark截取数据包,分析数据包里的真实内容,把抽象的网络运行机制完全的展示出来,还有目的的获取想要的数据包,比如想查看http流量,则需要用web浏览器访问web页面;要查看产生ftp流量,则需要用FTP Client访问FTP服务器;要产生DNS流量就更简单,只要用域名访问一些资源即可。Wireshark把网络层的数据全部以十六进制的形式表现出来,可以有目的的摘取所需要的数据,看清楚数据包的实质内容。http协议是基于ASCII码的,跟踪TCP流红色部分表示请求消息,蓝色部分表示响应消息。使得整个数据包的协议介绍的更加详细。
第二篇:利用wireshark分析HTTP协议
计算机网络 实验报告
年级: 通信 姓名: 学号:
实验日期: 20##年4月30日星期三
实验名称: 利用wireshark分析HTTP协议
一、实验目的
分析HTTP协议
二、实验环境
与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE等软件。
三、实验步骤
1、利用Wireshark俘获HTTP分组
(1)在进行跟踪之前,我们首先清空Web 浏览器的高速缓存来确保Web网页是从网络中获取的,而不是从高速缓冲中取得的。之后,还要在客户端清空DNS高速缓存,来确保Web服务器域名到IP地址的映射是从网络中请求。在WindowsXP机器上,可在命令提示行输入ipconfig/flushdns完成操作。
(2)启动Wireshrk 分组俘获器。
(3)在Web 浏览器中输入:http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html
(4)停止分组捕获。
图1:利用Wireshark俘获的HTTP分组
浏览Web页面经过如下三个过程:
(一)DNS解析
在URL http://gaia.cs.umass.edu中,gaia.cs.umass.edu 是一个具体的web 服务器的域名。最前面有两个DNS分组。第一个分组是将域名gaia.cs.umass.edu转换成为对应的IP 地址的请求,第二个分组包含了转换的结果。这个转换是必要的,因为网络层协议——IP协议,是通过点分十进制来表示因特网主机的,而不是通过gaia.cs.umass.edu这样的域名。当输入URL http://gaia.cs.umass.edu时,将要求Web服务器从主机gaia.cs.umass.edu上请求数据,但首先Web浏览器必须确定这个主机的IP地址。
(二)TCP连接建立
随着转换的完成,Web浏览器与Web服务器建立一个TCP连接。
(三)HTTP交互
Web 浏览器使用已建立好的TCP连接来发送请求“GET/HTTP/1.1”。这个分组描述了要求的行为(“GET”)及文件(只写“/”是因为我们没有指定额外的文件名),还有所用到的协议的版本(“HTTP/1.1”)。
分析截获的结果,回答下列问题:
粘贴前面的地址解析的两个DNS分组
1)DNS协议主要使用UDP封装还是TCP封装?
___TCP封装___ ____________
2) DNS查询消息的IP地址是____221.204.7.205______________?你默认的本地DNS服务器的IP地址是___10.30.58.15_______________?
3)DNS查询消息的目的端口是____domain(53)______________?DNS响应消息的源端口是______20430____________?
粘贴Web浏览器与 Web服务器建立一个TCP连接的三次握手报文
2、HTTP GET/response交互
图 HTTP GET请求信息
(1)在协议框中,选择“GET/HTTP/1.1” 所在的分组会看到这个基本请求行后跟随着一系列额外的请求首部。在首部后的“\r\n”表示一个回车和换行,以此将该首部与下一个首部隔开。
“Host”首部在HTTP1.1版本中是必须的,它描述了URL中机器的域名,本例中是http://gaia.cs.umass.edu。这就允许了一个Web服务器在同一时间支持许多不同的域名。有了这个数不,Web服务器就可以区别客户试图连接哪一个Web服务器,并对每个客户响应不同的内容,这就是HTTP1.0到1.1版本的主要变化。
User-Agent首部描述了提出请求的Web浏览器及客户机器。
接下来是一系列的Accpet首部,包括Accept(接受)、Accept-Language(接受语言)、Accept-Encoding(接受编码)、Accept-Charset(接受字符集)。它们告诉Web服务器客户Web浏览器准备处理的数据类型。Web服务器可以将数据转变为不同的语言和格式。这些首部表明了客户的能力和偏好。
Keep-Alive及Connection首部描述了有关TCP连接的信息,通过此连接发送HTTP请求和响应。它表明在发送请求之后连接是否保持活动状态及保持多久。大多数HTTP1.1连接是持久的(persistent),意思是在每次请求后不关闭TCP连接,而是保持该连接以接受从同一台服务器发来的多个请求。
(2)我们已经察看了由Web浏览器发送的请求,现在我们来观察Web服务器的回答。响应首先发送“HTTP/1.1 200 ok”,指明它开始使用HTTP1.1版本来发送网页。同样,在响应分组中,它后面也跟随着一些首部。最后,被请求的实际数据被发送。
图 HTTP 响应
第一个Cache-control首部,用于描述是否将数据的副本存储或高速缓存起来,以便将来引用。一般个人的Web浏览器会高速缓存一些本机最近访问过的网页,随后对同一页面再次进行访问时,如果该网页仍存储于高速缓存中,则不再向服务器请求数据。类似地,在同一个网络中的计算机可以共享一些存在高速缓存中的页面,防止多个用户通过到其他网路的低速网路连接从网上获取相同的数据。这样的高速缓存被称为代理高速缓存(proxy cache)。在我们所俘获的分组中我们看到“Cache-control”首部值是“private”的。这表明服务器已经对这个用户产生了一个个性化的响应,而且可以被存储在本地的高速缓存中,但不是共享的高速缓存代理。
在HTTP请求中,Web服务器列出内容类型及可接受的内容编码。此例中Web服务器选择发送内容的类型是text/html且内容编码是gzip。这表明数据部分是压缩了的HTML。
服务器描述了一些关于自身的信息。此例中,Web服务器软件是Google自己的Web服务器软件。响应分组还用Content-Length首部描述了数据的长度。最后,服务器还在Date首部中列出了数据发送的日期和时间。
根据俘获窗口内容,回答1-6题。
(1)你的浏览器运行的是HTTP1.0,还是HTTP1.1?你所访问的服务器所运行的HTTP版本号是多少?
_________ HTTP1.1_________version1.1___________________________________________________________________________________________________________________________________
(2)你的浏览器向服务器指出它能接收何种语言版本的对象?
_______ Accept-Language:zh-cn\r\n________________________________________________________________________________________________________________________________________________
(3)你的计算机的IP地址是多少?
____10.30.58.15_________________________________________________________________________________________________________________________________________________
(4)从服务器向你的浏览器返回的状态代码是多少?
___________200ok___________________________________________________________________________________________________________________________________________
(5)你从服务器上所获取的HTML文件的最后修改时间是多少?____________________ Date: Wed, 30 Apr 20## 08:16:13 GMT\r\n____
_________________________________________________________________________________________________________________________________
(6)返回到你的浏览器的内容一共多少字节?
______________________52031_______________________________________________________________________________________________________________________________
3、HTTP条件GET/response交互
(1)启动浏览器,清空浏览器的缓存。(在ie:工具----Internet选项-----删除----Internet临时文件 历史记录 删除缓存中的内容)
(2)启动Wireshark分组俘获器,开始Wireshark分组俘获。
(3)在浏览器地址栏中如下网址:
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html
你的浏览器中将显示一个具有五行的非常简单的HTML文件。
(4)在你的浏览器中重新输入相同的URL或单击浏览器中的“刷新”按钮。
(5)停止Wireshark分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
根据操作回答7-10题。
(7)分析你的浏览器向服务器发出的第一个HTTP GET请求的内容,在该请求报文中,是否有一行是:
IF-MODIFIED-SINCE?没有__________________________________________________________________________________________________________________________________________
(8)分析服务器响应报文的内容,服务器是否明确返回了文件的内容?如何获知?____ Congratulations again! Now you've downloaded the file lab2-2.html.
This file's last modification date will not change.
Thus if you download this multiple times on your browser, a complete copy
will only be sent once by the server due to the inclusion of the IN-MODIFIED-SINCE
field in your browser's HTTP GET request to the server.
_________________________________________________________________________________________________________________________________________________
(9)分析你的浏览器向服务器发出的第二个“HTTP GET”请求,在该请求报文中是否有一行是:IF-MODIFIED-SINCE?如果有,在该首部行后面跟着的信息是什么? __没有____________________________________________________________________________________________________________________________________________
(10)服务器对第二个HTTP GET请求的响应中的HTTP状态代码是多少?服务器是否明确返回了文件的内容?请解释
____状态码和相应状态信息的值为304 NOT Modified,他表示缓存器可以使用该对象。 第二次没有返回文件的内容,因为他只是作为对该条件GET的响应,WEB服务器只发送一个响应报文,不包含请求的对象________________________________________________________________________________________________________________________________________________
4、获取长文件
(1)启动浏览器,将浏览器的缓存清空。
(2)启动Wireshark 分组俘获器,开始Wireshark分组俘获。
(3)在浏览器地址栏中输入如下网址:
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html
浏览器将显示一个相当大的美国权力法案
(4)停止Wireshark分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
根据操作回答11-14题。
(11)你的浏览器一共发出了多少个HTTP GET请求?________1个____________________________________________________________________________________________________________________________________________
(12)查看GET的响应消息,该单个HTTP响应消息,需要多少个TCP报文段?_______________4个_______________________________________________________________________________________________________________________________________
(13)与这个HTTP GET请求相对应的响应报文的状态代码和状态短语是什么
_HTTP/1.1 200OK\r\________________________________________________________________________________________________________________________________________________
5、嵌有对象的HTML文档
(1)启动浏览器,将浏览器的缓存清空。
(2)启动Wireshark分组俘获器。开始Wireshark分组俘获。
(3)在浏览器地址栏中输入如下网址:
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html
浏览器将显示一个具有两个图片的短HTTP文件。
(4)停止Wireshark分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
根据操作回答15-16题。
(15)你的浏览器一共发出了多少个HTTP GET请求?这些请求被发送到的目的地的IP地址是多少?_3个__222.198.2.63______________________________________________________________________________________________________________________________________________
(16)浏览器在下载这两个图片时,是串行下载还是并行下载?请解释。
__当前一个GET还没有得到回复就发送了下一个GET_________________________________________________________________________________________________________________________________________________
6、HTTP认证
(1)启动浏览器,将浏览器的缓存清空。
(2)启动Wireshark分组俘获器。开始Wireshark分组俘获。
(3)在浏览器地址栏中输入如下网址:
http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html
浏览器将显示一个HTTP文件,输入所需要的用户名和密码(用户名:wireshark-students,密码:network)。
(4)停止Wireshark分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
根据操作回答17-18题。
(17)对于浏览器发出的最初的HTTP GET请求,服务器的响应是什么(状态代码和状态短语)?
____ 200OK_____________________________________________________________________________________________________________________________________________
(18)当浏览器发出第二个HTTP GET请求时,在HTTP GET响应报文中包含了哪些新的字段?
__________ _Authorization :basic __________________________________________________________________________________________________________________________________________