实训二用WireShark分析IPTCPHTTP.docx

上传人:b****1 文档编号:1049966 上传时间:2023-04-30 格式:DOCX 页数:11 大小:155.89KB
下载 相关 举报
实训二用WireShark分析IPTCPHTTP.docx_第1页
第1页 / 共11页
实训二用WireShark分析IPTCPHTTP.docx_第2页
第2页 / 共11页
实训二用WireShark分析IPTCPHTTP.docx_第3页
第3页 / 共11页
实训二用WireShark分析IPTCPHTTP.docx_第4页
第4页 / 共11页
实训二用WireShark分析IPTCPHTTP.docx_第5页
第5页 / 共11页
实训二用WireShark分析IPTCPHTTP.docx_第6页
第6页 / 共11页
实训二用WireShark分析IPTCPHTTP.docx_第7页
第7页 / 共11页
实训二用WireShark分析IPTCPHTTP.docx_第8页
第8页 / 共11页
实训二用WireShark分析IPTCPHTTP.docx_第9页
第9页 / 共11页
实训二用WireShark分析IPTCPHTTP.docx_第10页
第10页 / 共11页
实训二用WireShark分析IPTCPHTTP.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实训二用WireShark分析IPTCPHTTP.docx

《实训二用WireShark分析IPTCPHTTP.docx》由会员分享,可在线阅读,更多相关《实训二用WireShark分析IPTCPHTTP.docx(11页珍藏版)》请在冰点文库上搜索。

实训二用WireShark分析IPTCPHTTP.docx

实训二用WireShark分析IPTCPHTTP

训二-用WireShark分析IP、TCP、HTTP

计算机学院网络工程2012

(1)班学号:

3112006354姓名:

詹德超

实训二用WireShark分析IP、TCP、HTTP

一、实验目的

1.分析HTTP协议报文的首部格式,理解HTTP协议的工作过程。

2.用Wireshark捕获和分析HTTP报文。

二、实验设备

1.接入Internet的计算机主机;

2.抓包工具WireShark。

三、实验内容

1.HTTP协议简介

HTTP是超文本传输协议(HyperTextTransferProtocol)的缩写,用于WWW服务。

(1)HTTP的工作原理

HTTP是一个面向事务的客户服务器协议。

尽管HTTP使用TCP作为底层传输协议,但HTTP协议是无状态的。

也就是说,每个事务都是独立地进行处理。

当一个事务开始时,就在万维网客户和服务器之间建立一个TCP连接,而当事务结束时就释放这个连接。

此外,客户可以使用多个端口和服务器(80端口)之间建立多个连接。

其工作过程包括以下几个阶段。

①服务器监听TCP端口80,以便发现是否有浏览器(客户进程)向它发出连接请求;

②一旦监听到连接请求,立即建立连接。

③浏览器向服务器发出浏览某个页面的请求,服务器接着返回所请求的页面作为响应。

④释放TCP连接。

在浏览器和服务器之间的请求和响应的交互,必须遵循HTTP规定的格式和规则。

当用户在浏览器的地址栏输入要访问的HTTP服务器地址时,浏览器和被访问HTTP服务器的工作过程如下:

①浏览器分析待访问页面的URL并向本地DNS服务器请求IP地解析;

②DNS服务器解析出该HTTP服务器的IP地址并将IP地址返回给浏览器;

③浏览器与HTTP服务器建立TCP连接,若连接成功,则进入下一步;

④浏览器向HTTP服务器发出请求报文(含GET信息),请求访问服务器的指定页面;

⑤服务器作出响应,将浏览器要访问的页面发送给浏览器,在页面传输过程中,浏览

器会打开多个端口,与服务器建立多个连接;

⑥释放TCP连接;

⑦浏览器收到页面并显示给用户。

(2)HTTP报文格式

HTTP有两类报文:

从客户到服务器的请求报文和从服务器到客户的响应报文。

图1显示了两种报文的结构。

图1HTTP的请求报文和响应报文结构

在图1中,每个字段之间有空格分隔,每行的行尾有回车换行符。

各字段的意义如下:

①请求行由三个字段组成:

*方法字段,最常用的方法为“GET”,表示请求读取一个万维网的页面。

常用的方法还有“HEAD(指读取页面的首部)”和“POST(请求接受所附加的信息);

*URL字段为主机上的文件名,这时因为在建立TCP连接时已经有了主机名;

*版本字段说明所使用的HTTP协议的版本,一般为“HTTP/1.1”。

②状态行也有三个字段:

*第一个字段等同请求行的第三字段;

*第二个字段一般为“200”,表示一切正常,状态码共有41种,常用的有:

301(网站已转移),400(服务器无法理解请求报文),404(服务器没有锁请求的对象)等;

*第三个字段时解释状态码的短语。

③根据具体情况,首部行的行数是可变的。

请求首部有Accept字段,其值表示浏览器可以接受何种类型的媒体;Accept-language,其值表示浏览器使用的语言;User-agent表明可用的浏览器类型。

响应首部中有Date、Server、Content-Type、Content-Length等字段。

在请求首部和响应首部中都有Connection字段,其值为Keep-Alive或Close,表示服务器在传送完所请求的对象后是保持连接或关闭连接。

④若请求报文中使用“GET”方法,首部行后面没有实体主体,当使用“POST”方法是,附加的信息被填写在实体主体部分。

在响应报文中,实体主体部分为服务器发送给客户的对象。

图2和图3显示了Wireshark捕获的HTTP请求和响应报文,结合上面的介绍,请自己分析和体会。

图2HTTP请求报文示例

图3HTTP响应报文示例

 

2.实验环境与说明

(1)实验目的

在PC机上访问Web页面,截获报文,分析HTTP协议的报文格式和HTTP协议的工作过程。

(2)实验设备和连接

本地实验室环境,无须设备连接;

注意:

请通过访问可以连接的WWW站点或使用IIS建立本地WWW服务器来进行实验。

3.实验步骤

实验1、简单网页捕获与分析。

步骤1:

在PC机上运行Wireshark,开始截获报文;

步骤2:

打开浏览器,清空浏览器的缓存。

从浏览器上访问下列URL地址。

打开网页,待浏览器的状态栏出现“完毕”信息后关闭网页。

●http:

//www.rfc-editor.org/CurrQstats.txt

浏览器中将显示一个只有一行或多行文字的非常简单的HTML文件。

步骤3:

停止截获报文,将截获的报文命名为test1保存。

分析截获的报文,回答以下几个问题:

(1)综合分析截获的报文,查看有几种HTTP报文?

答:

有两类报文:

从客户到服务器的请求报文和从服务器到客户的响应报文。

(2)在截获的HTTP报文中,任选一个HTTP请求报文和对应的HTTP应答报文,仔细分析它们的格式,填写表1和表2。

从应用层分析报文格式

表1HTTP请求报文格式

方法

GET

版本

HTTP/1.1

URL

/CurrQstats.txt

首部字段名

字段值

字段所表达的信息

Accept

*/*

浏览器支持的媒体类型为*/*

Accept-Encoding

gzip,deflate

支持的编码类型

User-Agent

User-Agent:

Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.1;Trident/5.0;SLCC2;.NETCLR2.0.50727;.NETCLR3.5.30729;.NETCLR3.0.30729;.NETCLR3.0.4506.2152;.NET4.0C;.NET4.0E)

使用的用户代理Mozilla/4.0

Host

www.rfc-editor.org

请求的服务地址

Connection

Keep-Alive

连接类型为:

持久连接

表2HTTP应答报文格式

版本

HTTP/1.1

状态码

200

短语

OK

首部字段名

字段值

字段所表达的信息

Date

Fri,11Dec201501:

46:

46GMT

报文创建时间

Server

Apache

服务器为Apache

Last-Modified

Tue,08Dec201507:

20:

02GMT

浏览器当前资源最后缓存时间

ETag

"7a3d0e-502-5265dcd5f9280"

缓存相关的头

Accept-Ranges

bytes

单位

Content-Length

1282

实体内容长度

Keep-Alive

timeout=15,max=99

保持多长时间

Connection

Keep-Alive

保持持久连接

Content-Type

text/plain

告诉浏览器回送数据类型

(3)分析在截获的报文中,客户机与服务器建立了几个连接?

服务器和客户机分别使用了哪几个端口号?

客户机:

3505服务器:

80

(4)综合分析截获的报文,理解HTTP协议的工作过程,将结果填入表3中。

表3HTTP协议工作过程

HTTP客户机端口号

HTTP服务器端口号

所包括的报文号

步骤说明

3050

80

140

客户端发起tcp请求

3050

80

144

服务器应答tcp请求

3050

80

145

客户端第三次握手

3050

80

146

发送http请求报文

3050

80

157

服务器回应http请求

(4)分析此次页面获取过程中建立了几次TCP链接,此链接是否释放了。

答:

并没有释放连接;没有发送FIN报文。

实验2、超媒体页面捕获与分析

(1)启动浏览器,将浏览器的缓存清空。

(2)启动WireShark分组俘获器。

开始WireShark分组俘获。

(3)在浏览器的地址栏中输入某个地址,(需要满足该地址下的网页是包含多个内嵌对象即可)。

(4)停止WireShark分组俘获,将捕获结果保存为test2

(5)重新启动Webbrowser。

启动WireShark分组俘获器,进行分组捕获。

在Webbrowser当中重新输入相同的URL或单击浏览器中的“刷新”按钮。

(6)步骤同(5)。

将捕获结果保存为test3。

根据操作回答下面的问题。

(1)填写浏览器的输入的URL地址。

在命令行输入ipconfig/flushdns完成操作

URL地址:

(2)分析test2的捕获文件,你的浏览器一共发出了多少个HTTPGET请求,每个GET请求的对象是什么?

这些请求被发送到的目的地的IP地址是多少?

序号

GET的对象

目的地的IP地址

与此GET请求相对应的响应报文的状态码

25

/

119.75.218.70

200

38

/img/baidu_sylogo.gif

119.75.218.70

200

39

/cache/global/img/gs.gif

119.75.218.70

200

45

/r/www/cache/sug/js/bdsug-1.1.js

119.75.215.108

200

50

/r/www/cache/sug/js/hps-1.5.js

119.75.215.108

200

56

/r/www/img/i-1.0.0.png

119.75.215.108

200

111

/favicon.ico

119.75.218.70

200

(3)分析你的浏览器向服务器发出的第一个HTTPGET请求的内容,在该请求报文中,是否有一行是:

IF-MODIFIED-SINCE?

分析服务器响应报文的内容,服务器是否明确返回了文件的内容?

如何获知?

If-Modified-Since是标准的HTTP请求头标签,在发送HTTP请求时,把浏览器端缓存页面的最后修改时间一起发到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行比较。

如果时间一致,那么返回HTTP状态码304(不返回文件内容),客户端接到之后,就直接把本地缓存文件显示到浏览器中。

如果时间不一致,就返回HTTP状态码200和新的文件内容,客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示到浏览器中。

(4)分析捕获文件test3分析你的浏览器向服务器发出的第二个“HTTPGET”请求,在该请求报文中是否有一行是:

IF-MODIFIED-SINCE?

如果有,在该首部行后面跟着的信息是什么?

没有,是最新的缓存,服务器回应304

(5)服务器对第二个HTTPGET请求的响应中的HTTP状态代码是多少?

服务器是否明确返回了文件的内容?

请解释。

如果不是最新,服务器将返回200,并发送最新内容。

实验3、观察在HTTP/1.0和HTTP/1.1下的TCP连接的建立与释放过程(何时、由谁启动)

HTTP/1.0协议使用非持久连接,即在非持久连接下,一个tcp连接只传输一个Web对象,;

HTTP/1.1默认使用持久连接(然而,HTTP/1.1协议的客户机和服务器可以配置成使用非持久连接)

在持久连接下,不必为每个Web对象的传送建立一个新的连接,一个连接中可以传输多个对象

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2