首页 实验二:Ethereal Lab —— HTTP协议

实验二:Ethereal Lab —— HTTP协议

举报
开通vip

实验二:Ethereal Lab —— HTTP协议实验二:EtherealLab——HTTP协议一、实验目的通过本次实验,利用Ethereal软件从以下几个方面研究HTTP协议的运行机制:实验2-1:基本的GET/response交换;实验2-2:HTTP的有条件GET/response交互;实验2-3:利用HTTP获取大的HTML文件;实验2-4:利用HTTP获取带有嵌入式对象的HTML文件;实验2-5:HTTP认证与安全。二、实验原理万维网(WorldWideWeb,WWW)是一种基于因特网的分布式信息查询系统。WWW的工作基于客户机/...

实验二:Ethereal  Lab —— HTTP协议
实验二:EtherealLab——HTTP协议一、实验目的通过本次实验,利用Ethereal软件从以下几个方面研究HTTP协议的运行机制:实验2-1:基本的GET/response交换;实验2-2:HTTP的有条件GET/response交互;实验2-3:利用HTTP获取大的HTML文件;实验2-4:利用HTTP获取带有嵌入式对象的HTML文件;实验2-5:HTTP认证与安全。二、实验原理万维网(WorldWideWeb,WWW)是一种基于因特网的分布式信息查询系统。WWW的工作基于客户机/服务器模型,由Web浏览器(客户机)向Web服务器(服务器)请求由超文本标记语言(HTML)编辑的网页,Web服务器进行响应,返回相应网页,两者之间采用超文本传送协议(HTTP)进行通信。HTTP有两种报文类型:请求报文和响应报文。请求报文的格式如下图1,响应报文格式如下图2:图1:HTTP请求报文图2:HTTP响应报文浏览器可以缓存最近请求过的对象的拷贝,避免再次向服务器请求该对象,减少响应时间。但是缓存的对象有可能因为服务器端最近做过修改而变得陈旧,HTTP允许浏览器证实缓存的对象是否是最新的,即条件GET方法。条件GET方法在请求报文中使用GET方法,并包含一个If-Modified-Since首部行,含义是告诉服务器仅当自指定日期之后修改过该对象时才发送该对象。如果服务器在指定日期后并未修改该对象,则不再返回该对象。网页是由对象组成的,对象如HTML文件、JPEG图形文件、Java小程序等等。多数Web页含有一个基本的HTML文件和多个引用对象,在基本的HTML文件中通过对象的URL地址对对象进行引用,对象可能存储在多个不同的服务器上,浏览器通过对象的URL地址向不同的服务器发出请求。三、实验步骤与实验问题探讨【注:实验步骤应用(x),问题用[x]】1.基本的HTTPGET/response交互下面利用HTTP获取一个简单的HTML文件(一个非常短且不含有嵌入式对象的文件)。按下列步骤操作:(1)打开网页浏览器(2)启动Ethereal分组嗅探器(但还不要开始数据包抓取)。在display-filter-specification窗口中输入“http”,这样在packet-listing窗口将只显示被抓取的HTTP数据包。(3)等待超过一分钟时间(稍后解释为什么),然后开始Ethereal分组抓取(4)在浏览器中输入http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file1.html.浏览器应显示这个非常简单的只有一行的HTML文件。(5)停止Ethereal数据抓取。Ethereal窗口应该看起来与图1相似.(6)(注意:如果你无法建立一个网络连接并运行Ethereal,可以下载一个分组trace文件,它是按照上述步骤在某主机上执行后由Ethereal捕获到的数据文件.下载http://gaia.cs.umass.edu/ethereal-labs/ethereal-traces.zip压缩文件,然后解压文件http-ethereal-trace-1,你就可以用File下拉菜单中的Open命令来装载它并查看结果。(应与图1相似))----标注1图1中显示在packet-listing窗口中有两个HTTP数据包被捕获:1GET数据包(从你的浏览器到gaia.cs.umass.edu网络服务器);2响应数据包(从服务器到你的浏览器)。Packet-contents窗口显示了被选择数据包的细节。(图中选择显示的是HTTPGET数据包)。既然HTTP数据包是被封装在TCP报文段中传送的,而TCP报文段是被封装在IP数据包中传递,IP数据包又是在以太网帧中传递的,所以Ethereal还显示了帧、以太网、IP、TCP的分组信息。这里将显示的非HTTP数据最小化(这里我们只对HTTP感兴趣,将在后续实验中研究其它协议),因此要确保帧、以太网、IP、TCP信息的最左端呈现指向右的箭头或加号(这表示有隐藏的信息),而HTTP行有一个指向下的箭头或减号(表明关于HTTP数据的所有信息都显示了)(注意:你应该对favicon.ico产生的HTTPGET/response忽略不计。如果你看到对这个文件的一个引用(reference),它是你的浏览器在自动的向服务器询问是否服务器有一个小的图标文件,该文件应紧随被显示的URL在浏览器中显示。我们将忽略实验中对该麻烦文件的所有引用。)图1:在http://gaia.cs.umass.edu/ethereal-labs/HTTP-etherealfile1.html已被你浏览器获取后Ethereal显示界面查阅HTTPGET和response报文的相关信息,回答下列问题:[1]你的浏览器正运行的HTTP版本号是1.0还是1.1?服务器运行的HTTP版本号是多少?答:你的浏览器是1.1版本服务器运行的HTTP1.1版本[2]你的浏览器向服务器表示它可以接受哪些语言?答:en-us,en;[3]你的主机IP地址是多少?gaia.cs.umass.edu服务器的IP是多少?答:主机:192.168.1.102服务器:128.119.245.12[4]从服务器向你的浏览器返回的状态代码是什么?答:200OK[5]你正获取的HTML文件在服务器上最后一次被修改是什么时间?答:Last—Modified:Tue,23 sep200305:29:50GMT[6]有多少字节的内容被返回到你的浏览器?答:Content-length:73字节[7]观察packetcontentwindow的原始数据,你可以看到一些未被显示在packet-listingwindow的一些头部吗?如果有,列举一个。答:没有在你回答问题[5]时,你会吃惊的发现你刚刚下载的文档在你下载前的一分钟内被修改的。这是因为gaia.cs.umass.edu服务器针对这一特定文件每隔一分钟将这一文件的最后修改时间设置为当前时间。因此,如果你在两次读取之间等待一分钟,文件将显示最近被修改过,因此,你的浏览器将下载该文档的一份“新”拷贝。2.HTTP有条件GET/response交互大多数网页浏览器进行对象缓存,因而当获取一个HTTP对象时进行有条件GET。在进行以下实验步骤前,确保你的浏览器缓存是空的。(为了实现这一点,对于Netscape7.0,选Edit-Preferences-Advanced-Cache,然后清空内存和硬盘上的cache。对于InternetExplorer,选择Tools-InternetOptions-DeleteFile;这样将从你的浏览器缓存中删除被存储的文件)。现在执行下列操作:(1)启动浏览器,确保浏览器缓存被清空(如上讨论)(2)启动Ethereal分组嗅探器(3)在浏览器中输入一下URL:http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file2.html浏览器应显示一个非常简单的五行HTML文件(4)在浏览器中再次快速输入同一URL(或者只是简单的选择“刷新”按扭。)(5)停止Ethereal分组捕获,然后在display-filter-specification窗口输入“http”,以使只有被捕获的HTTP数据在packet-listing窗口中显示。(6)(注意:如果你无法建立一个网络连接,你可以使用http-ethereal-trace-2分组trace文件来回答下列问题,参见标注1.这个文件是在作者本机上执行以上实验步骤获得的)回答下列问题:[8]查看从你浏览器向服务器发出的第一个HTTPGET请求的内容,你是否看见在HTTPGET中有一个“IF-MODIFIED-SINCE”行?答:没有[9]查看服务器响应的内容。服务器直接返回文件内容吗?你如何确定?答:在Line-basedtextdata:text/html可以看到内容[10]现在查看从浏览器向服务器发出的第二个HTTPGET请求的内容,你是否看到在HTTPGET请求中有一个“IF-MODIFIED-SINCE”行?如果有,那么在该头部之后是什么信息?答:有IF-Modified-since:Tue,23sep200305:35:00GMT[11]对于第二个HTTPGET请求,服务器响应的HTTP状态码和短语是什么?服务器直接返回了文件的内容吗?解释一下原因。答:304NotModified没有,因为该对象没有被修改,缓存了其可用对象,并向浏览器发送了该对象的拷贝。3.利用HTTP获取获取长文档到现在为止我们在实验中使用的文档都是简单短小的HTML文件,下面我们下载一个长的HTML文件,看看会发生什么。执行下列操作:(1)启动浏览器,确保它的cache被清空,如上讨论(2)启动Ethereal分组嗅探器(3)在浏览器中输入以下URLhttp://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file3.html你的浏览器应该显示相当长的《USBillofRights》(4)停止Ethereal数据捕获,在display-filter-specification窗口中输入“http”,以使只有被捕获的HTTP数据被显示(5)(注意:如果你无法建立一个网络连接来运行Ethereal,你可以使用http-ethereal-trace-3文件来回答以下问题,参见脚注1.这一trace文件是在作者本机上执行上述实验步骤而捕获的)在packet-listing窗口,你应该看到你的HTTPGET信息,然后紧跟着是对HTTPGET请求的多个分组响应。这个由多个分组构成的响应需要进行一下解释:一个HTTP响应报文由一个状态行紧跟首部行,然后一个空行,最后为实体主体构成。就我们发出的HTTPGET请求来说,在响应中实体主体是整个被请求的HTML文件,而且在这个例子中,HTML文件是相当长的,大约4500字节太大了无法装在一个TCP分组中进行传输,因此这样一个HTTP响应报文被TCP分拆成几片,每一片被封装在一个独立的TCP报文段中。每个TCP报文段被Ethereal记录为一个独立的分组。而一个HTTP响应被分片成多个TCP分组的事实往往在Ethereal中被用短语“TCPsegmentofareassembledPDU”标记出来。我们在这强调:在HTTP中没有“TCPsegmentofareassembledPDU”这样一个报文。回答下列问题[12]从你的浏览器发送了多少HTTPGET请求?答:发送了三个[13]为了携带一个HTTP响应,需要多少个带数据的TCP报文段?答:1个TCP就行[14]对HTTPGET的请求进行响应时采用的状态码和短语是什么?答:200OK[15]由于TCP引起的被标记了“TCPsegmentofareassembledPDU”的被传输数据中有HTTP状态行吗?答:有4.利用HTTP获取带有嵌入式对象的HTML文件既然我们已经看到了Ethereal是如何显示大的HTML文件传输时所捕获的分组流量,那么我们也能看清当浏览器下载一个带有嵌入式对象的文件(例如一个包含在其他服务器上存储的对象的文件(下文中提到的图片文件))时所发生的事情。按如下步骤操作:(1)启动浏览器,确保浏览器的缓存被清空,如上讨论。(2)启动Ethereal分组嗅探器(3)在浏览器中输入URLhttp://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file4.html你的浏览器应该显示一个带两张图片的短HTML文件。在基础的HTML文件中引用了这两图片。也就是说,图片本身并未包含在HTML中,而是将图片的URL包含在被下载的HTML文件中。浏览器将必须从指定网址获取这商标图片我们的出版商的商标从网址www.awl.com获取,而书的封面图案被存在manic.cs.umass.edu服务器。(4)停止Ethereal分组捕获,在display-filter-specification窗口里输入“http”,以使只有被捕获的HTTP数据被显示(5)(注意:如果你无法为Ethereal建立一个网上连接,你可以使用http-ethereal-trace-4这个trace文件来回答下面的问题,参见注脚1,这个trace文件是在作者计算机上执行上述步骤获得的)回答下列问题:[16]你的浏览器发送了多少HTTPGET请求报文?这些GET请求被发往哪些Internet地址?答:发送了3个HTTPGET请求报文128.119.245.12;165.193.123.218;134.241.6.82[17]你能否判断出你的浏览器是逐个的下载两幅图片还是并行下载的两幅图片?请解释。答:并行。因为它不是顺序的,即发送完一个图片请求并接受完,再去发送另一个请求,而是交错进行的。5.HTTP认证与安全最后让我们尝试访问一个被密码保护的网络站点,查看与这个站点交换的HTTP报文序列。URL:http://gaia.cs.umass.edu/ethereal-labs/protected_pages/HTTP-ethereal-file5.html被密码保护,用户名:eth-students,密码为:network。让我们访问一下这个被密码保护的安全站点。执行下列步骤:(1)确保浏览器被清空,然后关闭浏览器,再打开它。(2)启动Ethereal进行分组捕获。(3)在浏览器中输入URL:http://gaia.cs.umass.edu/ethereal-labs/protected_pages/HTTP-ethereal-file5.html,在弹出的对话框中输入用户名、密码。(4)停止Ethereal的数据捕获,在display-filter-specification窗口中输入"http"使得在packet-listing窗口中只显示被捕获的HTTP数据。(5)(注意:如果你不能为Ethereal建立一个网络连接,你可以使用http-ethereal-trace5文件来回答下列问题,参见脚注1,这个trace文件是在作者主机上执行上述步骤而获得。)现在我们看一下Ethereal的输出,如果你想先了解一下HTTP认证方面的内容。可以先访问http://frontier.userland.com/stories/storyReader-$2159来阅读一下关于"HTTP读取认证框架"的这篇较易阅读的文章。回答下列问题:[18]对于你浏览器的首次HTTPGET请求,服务器如何响应?(状态码和短语)答:401AuthorizationRequired[19]当你的浏览器第二次发送HTTPGET请求,在这个HTTPGET请求中包含了哪个新字段?答:Authorization:BasicZXRoLXN0dwRlbnRzom51dHdvcmtz在浏览器的HTTPGET请求中紧随“Authorization:Basic”头部之后的是你输入的用户名(eth-students)和密码(networks),它们已被编码为“ZXRoLXN0dWRlbnRzOm5ldHdvcmtz”。尽管看上去好像用户名和密码已被加密,其实它们只是被按Base64格式进行简单地编码,这些用户名和密码未被加密!为了证明这一点,访问:http://www.securitystats.com/tools/base64.php,输入按base64编码的字符串“ZXRoLXN0dWRlbnRzOm5ldHdvcmtz”点击解码。你已将Base64编码译为ASCII编码,因此应该可以看到用户名和密码!既然每个人都可以下载象Ethereal这样的工具,监听所有经过他们网卡的数据包(即使那不是发给他们的),任何人都可以将Base64翻译到ASCII,你就会很清楚除非采取其它措施,否则在www网页上的密码将是不安全的。
本文档为【实验二:Ethereal Lab —— HTTP协议】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥20.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
徐姐2018
技术学院会计学毕业后掌握基本的会计知识技能,取得会计从业资格证,多年的财务工作经验,现认多家小企的财务会计!
格式:doc
大小:169KB
软件:Word
页数:8
分类:企业经营
上传时间:2018-05-16
浏览量:54