开放式课题实验报告实验名称:基于Wireshark软件的HTTP协议分析学号:姓名:指导教师:宫婧指导单位:理学院目录实验目的..........................................................错误!未定义书签。1)掌握Wireshark软件使用方法................错误!未定义书签。2)理解HTTP协议工作原理.....................................错误!未定义书签。实验任务.........................................错误!未定义书签。1)抓取数据包...............................错误!未定义书签。2)分析数据包...............................错误!未定义书签。实验环境..................................错误!未定义书签。软件介绍................................................21)wireshark软件简介........................................22)wireshark软件的应用......................................23)wireshark软件的价值......................................24)wireshark软件的操作简介..................................3HTTP协议详解...................................错误!未定义书签。1)HTTP协议基础概念..........................错误!未定义书签。2)HTTP协议工作流程..........................错误!未定义书签。3)HTTP协议请求响应信息......................................6HTTP请求报文信息....................................6HTTP响应报文信息....................................7HTTP数据包分析..................................................81)网络接口层信息...........................................102)网络层信息...............................................113)传输层信息...............................................124)应用层信息...............................................13总结.............................................错误!未定义书签。参考文献........................................................14基于Wireshark软件的HTTP协议分析实验目的:(1)掌握wireshark软件的使用方法,了解wireshark的工作原理;(2)掌握HTTP协议的工作原理。实验任务:(1)抓取数据包学会利用wireshark软件进行抓包,学会过滤获取HTTP数据包(2)分析数据包学会获取数据包信息,了解HTTP工作机制。实验环境:(1)WindowsXP操作环境(2)wireshark软件软件介绍:(1)wireshark简介Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。(2)wireshark的应用网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普通使用者使用Wireshark来学习网络协定的相关知识,有的人也居心叵测的用它来寻找一些敏感信息……仔细分析Wireshark撷取的封包能够帮助使用者对于网络行为有更清楚的了解。Wireshark不会对网络封包产生的内容进行修改,它只会反映出目前流通的封包资讯。Wireshark本身也不会送出封包至网络上。(3)Wireshark的价值在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。它是目前全世界最广泛的网络封包分析软件之一。(4)Wireshark的操作简介点击wireshak图标,出现以下页面:点击此时,有图片显示可知,该PC机的之连了有线网络,因而,我们只能捕捉到有限网络信息,点击Start,即可捕捉网络信息。若只想捕捉打开一个网页的信息,可以先打开该网页,再打开wireshark软件,点击Start,刷新该网页,即可获得该网页信息。例如:下面的打开,获得该网页信息,获得的如下页面:此时,获得的是打开百度网页的所有协议的数据包,若只想得知一种协议的数据包信息,我们可以在下面这一过滤工具栏中打上协议名称,wireshark软件就可以过滤掉其他协议信息,仅出现想要的协议信息HTTP协议详解(1)HTTP协议基础概念HTTP协议(HyperTextTransferProtocol,超文本传输协议)是互联网上应用最为广泛的一种网络协议。它是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。所有的文件都必须遵守这个标准。它是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。如下图所示:默认HTTP的端口号为80,HTTPS的端口号为443。(2)HTTP协议工作流程一次HTTP操作称为一个事务,其工作过程可分为四步:1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。如图所示:(3)HTTP协议请求响应信息:HTTP协议永远都是客户端发起请求,服务器回送响应。HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。HTTP请求报文信息HTTP请求报文格式:请求行通用信息头请求头实体头空行[报文体][报文尾部]请求行=方法+URL+HTTP版本号+CRLF方法=GET|HEAD|POST|……,请求类型是对大小写敏感的,下面简要叙述这几种方法的功能:1.GET方法表示取回由Request-URI标识的信息。2.HEAD方法也表示取回由Request-URI标识的信息,只是可以在响应时,不返回消息体。3.POST方法可以请求服务器接收包含在请求中的实体信息,可以用于提交表单,向新闻组、BBS、邮件群组和数据库发送消息。当然还有其他的方法,如PATCH,COPY,MOVE,DELETE,LINK,UNLINK,OPTIONURL=协议名称+宿主名+目录与文件名URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息,其的格式如下:[:port][abs_path]http表示要通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址;port指定一个端口号,默认端口为80;abs_path指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。HTTP版本号=HTTP0.9|HTTP1.0|HTTP1.1HTTP1.1是请求服务器响应的HTTP版本,HTTP1.1是我们目前最常使用的版本,它和HTTP0.9,HTTP1.0的最大不同之处在于,HTTP1.1是默认连接的,也就是说服务器在发送响应后,让连接连续为一些请求打开。请求头请求头由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:User-Agent:产生请求的浏览器类型,允许客户端将它的操作系统,浏览器和其他属性告诉服务器,但这个报头域不是必须的。Accept:请求报头域用于指定客户端接受哪些类型的信息,HTTP可以接受MIME信息Host:发送请求时,该报头域是必需的,主要用于指定被请求资源的Internet主机和端口号,它通常从HTTPURL中提取出来的Accept-Charset:用于指定客户端接受的字符集。Accept-Encoding:类似于Accept,但是它是用于指定可接受的内容编码。Accept-Language请求报头域类似于Accept,但是它是用于指定一种自然语言。Authorization:主要用于证明客户端有权查看某个资源。HTTP响应报文信息HTTP响应报文格式为:状态行通用信息头响应头实体头[报文体状态行=HTTP版本号+状态码+原因叙述其中,状态码表示服务器发回的响应状态代码;原因叙述表示状态代码的文本描述。状态码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:1xx:指示信息--表示请求已接收,继续处理2xx:成功--表示请求已被成功接收、理解、接受3xx:重定向--要完成请求必须进行更进一步的操作4xx:客户端错误--请求有语法错误或请求无法实现5xx:服务器端错误--服务器未能实现合法的请求常见状态代码、状态描述、说明:200OK:客户端请求成功400BadRequest:客户端请求有语法错误,不能被服务器所理解401Unauthorized:请求未经授权,这个状态代码必须和服务器收到请求,但是拒绝提供服务404NotFound:请求资源不存在,eg:输入了错误的URL500InternalServerError:服务器发生不可预期的错误503ServerUnavailable:服务器当前不能处理客户端的请求,一段时间后,可能恢复正常响应头:几种常见的响应头如下Allow:服务器支持哪些请求方法(如GET、POST等);Content-Encoding:文档的编码(Encode)方法。只有在解码之后才可以得到Content-Type头指定的内容类型。利用gzip压缩文档能够显著地减少HTML文档的下载时间。Content-Length:表示内容长度。只有当浏览器使用持久HTTP连接时才需要这个数据;Content-Type:表示后面的文档属于什么MIME类型。Servlet默认为text/plain,但通常需要显式地指