《TCP-IP教学资料:实验五HTTP协议分析.docx》由会员分享,可在线阅读,更多相关《TCP-IP教学资料:实验五HTTP协议分析.docx(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验五HTTP协议分析一、实验目的1、掌握HTTP报头结构;2、理解HTTP请求报文和响应报文的首部含义;二、实验内容1、HTTP协议报文格式分析:启动Wireshark截获数据报,打开浏览器输入mail. hebau. edu. cn,从捕捉到 的封包中找出第一个HTTP请求报文和与之对应的响应报文,进行分析,填写 以下的内容:HTTP请求报文格式HTTP响应报文格式请求行方法URL版本首部行首部名首部值含义实体状态行版本状态码短语首部行首部名首部值含义实体2、根据实验内容回答下列问题:清空你的internet临时文件夹,然后访问mail. hebau. edu. cn,从抓到的报文 中找出
2、第三个HTTP请求(loginjogo. png)和对应的响应报文,回答1-7注:在显示过滤工具栏中通过http, request可以显示所有的请求报文1)你的浏览器使用的是HTTP1. 0,还是HTTP1.1?你所访问的Web服务器所 使用HTTP协议的版本号是多少?2)你的浏览器向服务器指出它能接收何种语言版本的对象?3)你的计算机的IP地址是多少?服务器mail, hebau. edu. cn的1P地址是多 少?客户端请求的资源路径及文件名是多少?4)从服务器向你的浏览器返回response消息的状态代码是多少?5)你从服务器上所获取的图片文件的最后修改时间是多少?6)分析请求报文的内容
3、,在该请求消息中,是否有一行是: IF-MODIFIED-SINCE?7)分析服务器响应消息的内容,服务器是否明确返回了文件的内容?如何获 知?wireshark重新捕获,再次刷新mail. hebau. edu. cn页面,从捕获的报文中找出上面所请求资源的请求(loginogo. png)和响应报文,回答8T48)在该请求报文中是否有一行是:IF-MODIFIED-SINCE?如果有,在该首部 行后面跟着的信息是什么?和之前报文的哪个字段相同?9)在该请求报文中是否有一行是:IF-None-Match?如果有,在该首部行后 面跟着的信息是什么?和之前报文的哪个字段相同?10)响应消息中的H
4、TTP状态代码是多少?服务器是否明确返回了文件的内 容?请解释。11)状态代码和状态短语是什么?12)你的浏览器一共发出了多少个HTTP GET请求?13)在被传送的数据中一共有多少个HTTP状态行?14)对于浏览器发出的、最初的HTTP GET请求消息,服务器的响应消息的状 态代码和状态短语分别是什么?三、实验总结:写出自己对HTTP协议的总结。附录HTTP协议首部Accept:告诉WEB服务器自己接受什么介质类型,*/*表示任何类型,type/*表 示该类型下的所有子类型,type/sub-typeoAccept-Charset:浏览器申明自己接收的字符集。Accept-Encoding:
5、浏览器申明自己接收的编码方法,通常指定压缩方法,是否 支持压缩,支持什么压缩方法(gzip, deflate) o Accept-Language:浏览器申明自己接收的语言。Accept-Ranges: WEB服务器表明自己是否接受获取其某个实体的一部分(比如 文件的一部分)的请求。bytes:表示接受,none:表示不接受。Connection:请求:close (告诉WEB服务器或者代理服务器,在完成本次请求的响应后, 断开连接,不要等待本次连接的后续请求了)。keepalive (告诉WEB服务器或者代理服务器,在完成本次请求的响应 后,保持连接,等待本次连接的后续请求)。响应:clos
6、e (连接已经关闭)。keepalive (连接保持着,在等待本次连接的后续请求)。Keep-Alive:如果浏览器请求保持连接,则该头部表明希望WEB服务器保持 连接多长时间(秒)。例如:Keep-Alive: 300Content-Encoding: WEB服务器表明自己使用了什么压缩方法(gzip, deflate) 压缩响应中的对象。例如:Content-Encoding: gzipoEtag:就是一个对象(比如URL)的标志值,就一个对象而言,比如一个html文 件,如果被修改了,其Etag也会别修改,所以,ETag的作用跟Last-Modified 的作用差不多,主要供WEB服务器
7、判断一个对象是否改变了。比如前一次请求 某个html文件时,获得了其ETag,当这次又请求这个文件时,浏览器就会把 先前获得的ETag值发送给WEB服务器,然后WEB服务器会把这个ETag跟该 文件的当前ETag进行对比,然后就知道这个文件有没有改变了。Expired: WEB服务器表明该实体将在什么时候过期,对于过期了的对象,只有 在跟WEB服务器验证了其有效性后,才能用来响应客户请求。Host:客户端指定自己想访问的WEB服务器的域名/IP地址和端口号。例如:Host: rss. sina. com. cnoIf-Match:如果对象的ETag没有改变,其实也就意味著对象没有改变,才执行
8、请求的动作。If-None-Match:如果对象的ETag改变了,其实也就意味著对象也改变了, 才执行请求的动作。If-Modified-Since:如果请求的对象在该头部指定的时间之后修改了,才执行 请求的动作(比如返回对象),否则返回代码304,告诉浏览器该对象没有修改。 If-Range:浏览器告诉WEB服务器,如果我请求的对象没有改变,就把我缺少 的部分给我,如果对象改变了,就把整个对象给我。浏览器通过发送请求对象 的ETag或者自己所知道的最后修改时间给WEB服务器,让其判断对象是否 改变了。总是跟Range头部一起使用。Last-Modified: WEB服务器认为对象的最后修改时
9、间,比如文件的最后修改时 间,动态页面的最后产生时间等等。例如:Last-Modified: Tue, 06 May 2008 02:42:43 GMToLocation: WEB服务器告诉浏览器,试图访问的对象已经被移到别的位置了,到 该头部指定的位置去取。Pramga:主要使用 Pramga: no-cache,相当于 Cache-Control: no-cacheo Range:浏览器(比如Flashget多线程下载时)告诉WEB服务器自己想取对象 的哪部分。Referer:浏览器向WEB服务器表明自己是从哪个网页/URL获得/点击 当前请 求中的网址/URL。Server: WEB服务器表明自己是什么软件及版本等信息。User-Agent:浏览器表明自己的身份(是哪种浏览器)。Transfer-Encoding: WEB服务器表明自己对本响应消息体(不是消息体里面的 对象)作了怎样的编码,比如是否分块(chunked)。