HTTP协议分析实验报告
专业:计算机信息工程学院12级网络工程2班
学号:1208066057
学生姓名:汪国庆
一、实验目的:
1.分析http请求报文的含义和响应报文的含义。
2.知道http1.1和http1.0的异同。
3.通过http协议获取网页流程。
二、实验原理:(参考自互联网)
RFC 1945定义了HTTP/1.0版本。RFC 2616定义了今天普遍使用的一个版本——HTTP 1.1。
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。
HTTP协议永远都是客户端发起请求,服务器回送响应。见下图:
这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。
HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。
一次HTTP操作称为一个事务,其工作过程可分为四步:
1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。
2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。
三、实验步骤
1、打开Wireshark,选择工具栏上的“Capture”->“interfaces选择网关”,如图:
2、然后在Wireshark,选择工具栏上的“Capture”->“optoins”选择过滤器,并在capture filter 中输入tcp port 80(表示要抓http的包),如图
3、打开浏览器,输入.进行抓包
分析:前面三帧是客户端与服务器建立连接的三次握手。第四帧是一个http报文,内容如下。
通过分析这个http报文。
1)方式是GET,说明是一个请求报文
2)使用的版本是http1.1版
3)浏览器的类型是mazilla 4.0版
4)连接方式:keep-alive(保持连接)
5)请求的网页是
6)保留cookies在本地
第5-30帧是分组服务器端分组发送给客户端的tcp报文
第31帧表示收到一个完整的HTML文档
分析知道,它的发送方式是明文
中间的其他包就不分析了看一下后面的包
最后几帧有[FIN]的表示断开连接
4、http1.0 和http1.1的区别
在1.0时的会话方式
1.建立连接
2.发出请求信息
3.回送响应信息
4.关掉连接
小结:浏览器和web服务器连接很短,每次连接只处理一个请求和响应。对每一个页的请求,浏览器与web服务器都要建立一次单独的连接.浏览器没有关掉前,连接就断开了.浏览器和服务器之间的通信是完全独立分开的请求和响应对.因为这样没法断点浏览器是否断开,没法做连接状态控制。建立和关掉连接会很占用连接时间
在1.1时的会话方式
在同一个tcp的连接中可以传送多个HTTP请求和响应.
多个请求和响应可以重叠,多个请求和响应可以同时进行.
更加多的请求头和响应头(比如HTTP1.0没有host的字段).
总结: 在 HTTP/1.0 中,大多实现为每个请求/响应交换使用新的连接。在 HTTP/1.1 中,一个连接可用于一次或多次请求/响应交换,尽管连接可能由于各种原因被关闭.这是他们之间最大的分别.