演示:理解HTTP协议_第1页
演示:理解HTTP协议_第2页
演示:理解HTTP协议_第3页
演示:理解HTTP协议_第4页
演示:理解HTTP协议_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章详解并取证网络协议的工作原理任务4.4在本节将描述OSI模型中应用层的相关协议,处于该层的协议有很多,比如HTTP、FTP、POP3、SMTP等,由于篇幅有限,不可能将应用层的全部协议完全描述,所以在这里将重点描述几种常见的应用层协议,在这些协议中又将以HTTP和FTP作为重点描述。事实上,CCNA(200-120)考试很少对HTTP或者FTP作深入考查,但是在CCNP、CCIE的一些高级应用中,特别是NARB(基于应用层的识别)或者防火过滤,可能需要很成功地理解HTTP和FTP的工作原理后,才能灵活应用,这些基础应该在CCNA(200-120)中完成。所以大家千万不要忽略这一点,关于这些基础对应后期深入学习的哪些知识点,将会给大家列举出来。任务.1理解HTTP协议当用户利用IE浏览器访问某个网站的主页时,就使用了HTTP(HyperTextTransferProtocol,超文本传输协议)。HTTP是一个基于客户端与服务器端请求和应答的标准(TCP)协议,客户端是终端用户,服务器端是网站。通过使用Web浏览器,如InternetExplorer,客户端发起一个到服务器上指定端口(默认为80号端口)的HTTP请求,应答的服务器上存储着一些资源,包括HTML文件和图像,现在很多的网络应用都使用HTTP协议,它已经不是单纯的超文本传输协议了。注意:在如今的Internet应用中,通常已经不将HTTP理解为一种单纯的协议,而是把它当作一种数据的封装方式,使用它可以封装和传递任意文件。任务4.4.1可能对于一般的Internet使用者而言,没有必要对HTTP作深入的研究与分析。但对于一个网络管理者或者网络的专业人员而言,就必须深入理解HTTP的工作过程与协议结构。这关系着在管理过程中的一系列应用与安全措施,比如企业用户在打开页面时需要过滤掉某些图片文件、不允许下载MP3等,而这一系列动作都要求网络管理员对HTTP本身的结构非常熟悉。所以,本小节从HTTP的工作原理出发,深入分析HTTP的数据帧,以方便大家对HTTP的深入认识,提高基于HTTP的管理效率。HTTP有1.0和1.1两个版本。比如:微软的InternetExplorer一般使用1.1版本,但是在很多时候与代理服务器结合使用时,一般用的是1.0版本,因为代理服务器可能不知道一下节点是使用HTTP1.0还是1.1版本。HTTP的工作原理示意图如图4.60所示。任务4.4.1图4.60HTTP的工作原理示意图关于HTTP的无状态连接HTTP1.0版本是无状态连接,而1.1版本支持状态连接。所谓无状态连接,就是指在HTTP1.0版本中,一个HTTP请求与一个HTTP回应就称为一个完整的HTTP连接,基于这个连接的数据一旦发送完成后,这个连接就断开了,同时也会断开TCP三次握手过程,如果要重新连接,则需要重新进行TCP三次握手,所以说HTTP1.0本身是一个无状态连接的协议,这种无状态连接方式没有效率。HTTP1.1版本增加了Keepalive消息,使其具有状态连接的特性。Keepalive的特性是提高HTTP连接的利用率,它不会切断TCP三次握手,可以开始新的连接。因为在很多情况下,一个网页都有多个HTTP连接。任务4.4.1关于HTTP请求报文与应答报文的结构HTTP请求报文的结构如图4.61所示。关于实时通信中HTTP请求报文的数据帧如图4.62所示,可将理论上的报文结构与真实的数据帧进行对照理解。HTTP版本号HTTP方法URL请求头实体头图4.61HTTP请求报文的结构任务4.4.1HTTP版本号:声明HTTP的版本号为1.1或1.0。通常微软的使用1.1,其他代理服务器使用1.0。HTTP方法:最常用的有GET、HEAD和POST。GET请求Web页面的信息;HEAD申请Web页面的信息,不返回信息体。如果是请求表单、新闻组、BBS、邮件组群和数据库“字段索引”,就用POST代替GET,表示请求的是一个较大的数据。URL:被请求页面的网址,如/index。事实上它是由协议名称+宿主名+目录与文件名所组成的,在一些安全加固的要求下,将采取正规化的表达方式,比如在URL中不允许使用root.exe这样的文件,因为它可能是某种病毒。请求头:被请求的文件类型,如*/*(所有文件类型)。实体头:包含被请求实体的原信息。图4.62HTTP请求报文的数据帧任务4.4.1HTTP响应报文的结构如图4.63所示。关于实时通信中HTTP响应报文的数据帧如图4.64所示,可将理论上的报文结构与真实的数据帧进行对照理解。HTTP版本号状态码响应头实体头内容图4.63HTTP回应报文的结构HTTP版本号:声明HTTP版本号为1.1或1.0。状态码:帮助用户理解HTTP工作状态,常见的状态码如表4.1所示。响应头:包括Web服务器回应给客户机的HTTP的内容是否被加密认证、是否被公开、WWW的认证消息、主页的位置(Content-Location)等。实体头:包括HTTP响应的编码形式、语言、内容长度,以及内容的文件类型、最后一次修改时间。任务4.4.1表4.1HTTP工作状态码状态码意义1XX信息提示2XX成功3XX重定向4XX客户端错误5XX服务器错误图4.64HTTP响应报文的数据帧任务4.4.1注意:如果你计划在完成CCNA以后,打算更进一步地向CCNP或者CCIE迈进,或者为了在取得认证后能够更好地应对实践工作需求,那么请掌握下面的内容,这样做至少可以有三点收获:一、前面关于ARP、IP、ICMP、TCP、UDP的描述都是为了打下坚实的网络基础,属于CCNA必考内容,而应用层的HTTP协议具备实战意义,完成下面的整个阅读后你会明白为什么要理解HTTP协议;二、当你走到准备CCIE实验室考试时,使用NBRA来识别HTTP的不同数据类型时,一定会发现下面的描述非常有必要;三、当你被上司要求控制网络上一些基于HTTP封装的特殊数据,比如MP3、PDF文件、视频文件、应用程序时你会知道该怎么做。笔者本人一直持有一个观念:“会配置路由器和配好路由器是两个概念,要学会配置路由器看配置说明就能完成,要配好路由器必须得具备良好的网络认知能力,比如成功地掌握各种协议的运作过程就是这种认知能力的表现”。中国有句话:宝刀在手,却无刀诀,使之何用。任务4.4.1关于HTTP的数据封装与内容管理当资源被封装到HTTP报文中时,管这样的封装叫实体。早期的HTTP只能传送文本,一种简单的ASCII码的文本,但这已经是非常遥远的故事了,因为随着Internet的全面发展,许多用户都想借助于Web更多的资源传递,这些资源包括:表格、图片、影音等,那么HTTP已经不再是单纯地为传递文本文件服务,而是为广泛的多媒体资源服务。成为一种多媒体资源的封装方式与内容管理方式,这样做必定会增加HTTP协议的复杂性。在这里需要知道,HTTP协议使用语法去声明各种多媒体类型,它与MIME使用相同的语法来声明封装的各种多媒体文件。关于什么是MIME,在后继的段落中有相关描述。HTTP中使用content-type实体首部字段内容类型来声明并封装任何HTTP报文,它的语法格式是:content-type:<类型〉/<子类型>。HTTP使用媒体类型的另一个地方是发送HTTP请求消息中的accept字段,它的目的是客户机告诉服务器它可以处理什么类型的多媒体信息,以避免服务器向HTTP客户端发送无法处理的媒体类型,比如:accept=text/plain指示文本媒体主类型下面的纯文本子类型。事实上,它还可以使用星号(*)来作通配符,比如:accept=*/*指示可以处理任何类型的媒体文件。任务4.4.1注意:再次强调,HTTP声明封装媒体文件类型的方式是从MIME借鉴而来的,所以需要进一步了解什么是MIME,以及它产生的作用与相关语法。任务4.4.1关于MIME(MultipurposeInternetMailExtentions)的内容类型MIME是一种多用途的邮件扩展,它最初在电子邮件中使用,允许电子邮件携带多媒体信息以及任意文件,事实上大家使用电子邮件的“附件”功能时就是在体会MIME。后来MIME被扩展到HTTP的应用中,是定义HTTP内容格式的一种通用方法。MIME在思科的后期学习中,以及实践的工作环境中常被用到,特别是安全领域,所以在这里将对它作简单的描述。在早期的电子邮件中只能使用简单的ASCII文本(关于这一点RFC822描述了相关标准),在当时的Internet环境中可能已经足够,但是随着多媒体应用的扩展、任意的二进制文件、非ASCII字符集的产生,传统的电子邮件功能已经不能满足需求,可是标准一旦形成并加以推广,事实上就很难再废除和改变,所以只能使用MIME去扩展电子邮件的灵活性。MIME使用特殊的技术将各种多媒体信息编码成ASCII文体格式,其中包括图片、影音、应用程序等。因为MIME支持多媒体,所以每个报文必须描述它包括什么内容的信息,以便于对报文的内容进行解码。首先来简单描述MIME关于内容类型首部的语法:内容类型:<类型>/<子类型>。在RFC2046中定义了最常见的5种多媒体类型,分别是:Text(文体媒体类型)、image(图像媒体)、audio(音频媒体)、video(视频媒体)、model(模型媒体)、application(应用程序媒体),然后又将这5种媒体类型细分为多种文件类型。任务4.4.1关于MIME的类型与子类型举例如下:内容类型:Text/plain,指示文本媒体主类型下面的纯文本子类型。内容类型:image/jpeg,指示图像媒体主类型下面的JPEG文件子类型。内容类型:audio/mpeg,指示音频媒体主类型下面的MPEG文件子类型。注意:在这里,大家只需要知道MIME使用语法去声明相关的内容类型即可,不需要关心如何去编码这些内容,至少在思科的认证考试中不需要你去关心!任务4.4.1HTTP与MIME相关描述的意义在哪里本书中所论述的任何理论,在思科认证或者工作实践中都有意义,可能这些所谓的意义在CCNA或者学习过程中暂时没有被发现,比如使用思科的路由器完成对如下HTTP流量内容的识别和控制:识别并过滤以HTML表示的文本。识别并过滤AutoCAD软件所使用的矢量图形。识别并过滤MPEG标准的音频。识别并过滤QuickTime电影格式的视频。识别并过滤PDF程序。识别并过滤微软公司的PPT程序文件。任务4.4.1注意:要过滤与识别上述的文件类型,通常在思科的设备上使用本书第10章中所描述的ACL根本无法做到,因为文件类型都没有使用明确的端口号,它只是一种文件类型,而且都能通过HTTP封装与运载,如果你直接通过过滤HTTP来达到识别与过滤文件类型的目的,那么,上述文件能被识别和过滤,但是上述文件以外的HTTP流量也会被过滤,估计这不是管理员想要的结果,所以只有使用如下的配置去识别文件类型。关于NBAR具体的配置,不是CCNA所描述的范围,但是理解应用层协议一定是CCNA必须掌握的,这会为你后期的学习打下坚实的基础。R1(config-cmap)#matchprotocolhttpmimetext/htmlR1(config-cmap)#matchprotocolhttpmimeimage/vnd.dwgR1(config-cmap)#matchprotocolhttpmimeaudio/mpegR1(config-cmap)#matchprotocolhttpmimevideo/quicktimeR1(config-cmap)#matchprotocolhttpmimeapplication/pdfR1(config-cmap)#matchprotocolhttpmimeapplication/vnd.ms-pow

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论