第15章超文本传输协议

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第15章超文本传输协议超文本传输协议HTTP(HyperTextTransferProtocol)主要用于从服务器传输超文本到本地浏览器。HTTP协议改变了传统的线性浏览方法,通过超文本环境实现文档间的快速跳转。实现高效浏览。超文本传输协议HTTP是应用层协议。常用的HTTP服务器有三个:–共享软件APACHEWeb服务器–网景公司的企业服务器–微软公司的Internet信息服务器(IIS)网景公司的企业服务器可在大多数平台上运行。微软公司的IIS仅在Windows平台上运行。第15章超文本传输协议15.1统一资源定位符15.2超文本传输协议15.3一般格式15.4HTTP请求报文15.5HTTP响应报文15.1统一资源定位符统一资源定位符URL(UniformResourceLocator),也称Web地址,俗称“网址”。URL的完整格式有以下基本部分组成:协议+“://”+主机域名(IP地址)+“:”端口号+目录路径+文件名1.协议协议是指定服务连接而使用的所有访问协议,下表表示常用的协议类型。协议名称功能http超文本文件服务ftp文件传输服务gopherGopher服务newsUsenet新闻组服务telnet远程主机连接服务waisWAIS服务器连接服务2.主机域名(IP地址)主机域名(IP地址)指出数据所在的服务器域名,例如。3.端口(port)服务器提供端口号表示客户访问不同资源类型,例如常见的。在URL中端口号可以省略,省略时连同前面的“:”一起省略。4.目录路径(path)目录路径指明服务器上存放被请求信息的路径。5.文件名(file)文件名是客户访问页面的名称。例如index.htm,页面名称与设计时网页的源代码名称并不要求相同,由服务器完成两者之间的映射。路径表示资源在主机中的位置,路径描述采用的是UNIX下的路径格式。端口和路径都是可以省略的。例子:://://202.119.80.252/index.htm:8080返回15.2超文本传输协议HTTP协议是作为一种请求/回答协议来实现的。客户请求从Web服务器上给他传输一页。Web服务器以那一页来应答。HTTP协议工作在应用层。一个客户将一个请求发送给HTTP服务器(通常在TCP的80号端口);HTTP服务器接受这个请求,并给客户发送一个合适的回答。实际的通讯一般不是持续连接的,并且非静态的。当HTTP服务器回答了客户的请求之后连接便撤销,直到发布了下一个请求。1.HTTP通信方式HTTP为客户/服务器通信提供了握手方式及消息传送格式。HTTP采用请求/响应的握手方式,HTTP定义的事务处理其运作的基本过程如下图所示:客户服务器建立TCP/IP连接发送请求消息发送响应消息关闭连接HTTP通信方式主要三种:1)点对点方式点对点方式是最简单的传输方式,用户经过请求与源服务器间通过HTTP建立起点对点的连接。2)具有中间服务器方式中间服务器系统充当通信中继功能,客户发出的请求通过中继到达相关的服务器,同样服务器的响应也要通过中继才能返回给客户。3)缓存方式缓存方式暂时保存一定时间内的客户请求及该客户请求所对应的服务器响应,这样的缓存便于处理新的客户请求,节省网络流量和当地计算资源。2.HTTP的安全性HTTP安全性可以通过加密和鉴别来实现,最通常的方法是使用安全套接字层(SSL)。安全套接字层SSL工作在TCP/IP的传输层和应用层之间。在客户和服务器之间的所有传输都被SSL加密和解密。下图显示的是一个典型的SSL通信顺序。服务器发送响应消息、证书(包含服务器的公共密钥)客户机和服务器都知道了对称密钥,用它来加密会话期间的最终用户数据客户机产生随机对称密钥,并用服务器公钥加密客户机用已知的CA列表来认证证书客户机发出安全会话请求客户机服务器SSL通信工作过程如下:1)客户机发送安全会话请求消息,此消息包括SSL版本、客户机支持的密码族和客户机支持的数据压缩方法等。2)服务器发送响应消息和服务器数字证书(含服务器的公钥),响应消息包含密码方法和由服务器选择的数据压缩方法,以及会话标识等。如果服务器需要对客户进行认证(可选),则向客户发出“证书请求”消息。消息中包含服务器支持的数字证书类型的列表和可接受的认证中心的专有名称。3)客户机(Web浏览器)将验证服务器数字证书的有效性并检查服务器的响应消息参数是否可以接受。如果服务器请求客户机的证书,客户机将发送数字证书;如果没有合适的数字证书可用,客户机将发送“没有证书”警告。如果客户机认证是强制性的,服务器将会使会话失败。4)客户机发送“客户机密钥交换”消息。此消息包含随机产生的会话密钥、报文鉴别码(MAC)密钥(用服务器的公钥加密的)以及用于加密和报文鉴别的密钥材料。如果客户机发送数字证书给服务器,客户机将发出签有客户机的专用密钥的“证书验证”消息。通过验证此消息的签名,服务器可以显式验证客户机数字证书的所有权。5)服务器发送“已完成”消息响应,SSL握手结束。•随后的所有的数据将被加密和解密。URL中包含HTTPS://。3.HTTP主要特点1)简单HTTP协议在客户与服务器连接后,要求客户必须传送的信息只是请求方法和路径。HTTP协议规范定义的几种请求方法,实际上常用的只是其中的GET、HEAD、POST三种。由于HTTP简单,使得HTTP服务器程序规模小且简单,与其它协议相比时间开销小。HTTP协议的通信速度很快,可以有效地处理大量请求,得到了广泛的使用。2)无连接性HTTP是一个无连接性协议(HTTP1.0),每次连接只处理一个请求,并且客户接到服务器应答后立即断开连接。(HTTP1.1提供对持续连接的支持)3)无状态性HTTP是无状态的协议。HTTP无状态性使客户与服务器连接通信运行速度快,服务器应答也快。但是,因为无状态性,协议对事务处理是没有记忆的和独立的。所以,为了满足后续事务处理需要前面事务的有关信息的情况,这些前面事务的有关信息必须在协议外面保存,这便导致每次连接要传送较多的信息。4)元信息HTTP协议对所有事务处理都加了首部,我们称之为元信息,即关于信息的信息。返回HTTP协议通信过程1、URL自动解析2、获取IP,建立TCP连接3、客户端浏览器向服务器发出HTTP请求4、Web服务器应答,并向浏览器发送数据HTTP/1.1200OK5、Web服务器关闭TCP连接15.4HTTP请求报文•在HTTP报文中,大多数请求报文没有实体数据,请求报文的格式如图所示:•常用的HTTP请求的方法有GET、HEAD、PUT、POST、DELETE、LINK、UNLINK七种方法,其中GET、HEAD、POST方法被大多数服务器支持。1)GET方法GET方法的目的是取回由URL指定的资源。若对象是文件,则GET取的是文件内容;若对象是程序或描述,则GET取的是该程序执行的结果,或该描述的输出;若对象是数据库查询,则GET取的是查询的结果。GET允许通过使用IF语句来增加附加的灵活性,即条件GET。当在IF语句中的条件得到满足时,数据便被传输。如果Web页在最近没有被更新,HTTP客户便可以使用Web页在缓冲区的拷贝。这样可以充分利用网络带宽。2)HEAD方法HEAD方法要求服务器查找某对象的元信息而不是对象本身,仅要求服务器返回关于文档的信息,而非文档本身。例如用户想知道对象的大小,对象的最后一次修改的时间等。HEAD方法和GET方法的工作非常类似,只是信息体不被返回到客户那里。3)POST方法POST方法从客户向服务器传送数据,用来请求HTTP服务器将附带的数据当作HTTP服务器一个新的记录来接收。这种方法可被用来将消息发给一个新闻组,或向HTTP服务器提交一个HTML表格,或者将一个记录附加到HTTP服务器上驻留的一个数据库上去。4)PUT方法PUT方法是用来请求将这个请求中所发送的数据储存到请求消息中表明的资源处。如果数据已经存在,则此数据将被看成已存在数据的一个修改。与POST方法的不同之处:数据的目标位置可以规定好。5)DELETE方法DELETE方法是用来请求HTTP服务器删除在请求消息中表明的资源。这个方法可能被人工干预或HTTP服务器上的安全设置所超越。仅当服务器同意删除这个资源时,才会发送一个成功应答。6)TRACE方法TRACE方法用来确保HTTP服务器所接收到的数据是正确的。TRACE的回答是实际的HTTP请求,允许对HTTP请求进行测试和调试。7)CONNECT方法CONNECT方法被保留为安全接口层SSL隧道所用。返回15.5HTTP响应报文HTTP响应报文一般都带有实体数据,响应报文的格式如图所示。1.状态行(status-line)响应信息中的状态行由协议版本号、数字式的状态码(status-code)以及这个状态码对应的状态短语(Reason-Phase)组成。响应信息中,状态行以后的内容均使用MIME进行编码。版本:HTTP1.1;HTTP1.0;HTTP0.9状态码:3位十进制数的状态编码。100~199信息200~299成功300~399重定向400~499客户端错500~599服务器错状态短语:对状态码的文字解释。•HTTP1.1正被定义为新的HTTP协议的标准。一些新特性已被增加到最新版本的HTTP协议中,包括如下这些:•固定的连接。HTTP1.1允许在同一个连接中服务于多重请求。此协议以前的实现方法要求为每一个在一个Web页上嵌入的图像建立一个独立的连接。•流水线技术。这个特性允许给一个Web服务器发送附加的请求,这可在他们初始请求的回答信号到达之前发生。这将导致一个巨大的性能改进。•缓冲区指针。实现缓冲区指针允许客户和服务器的缺省缓冲区算法可以被调用或优化。•主机标题。HTTP1.1协议允许多重主机名与一个单独的IP地址相关联。这便除去了给一个驻留许多虚拟服务器的Web服务器配置多个IP地址的需要了。这个主机标题用来确定请求应该被导向哪个虚拟服务器。•PUT和DELETE选项。这些命令允许一个远程管理者通过使用一个标准的Web浏览器来记入或删除一些内容。•HTTP重定向。当原始的主页不能访问或被删除时,这个特性允许一个管理者将一个用户重定向到一个备选的主页或Web站点。HTTP通信HTTP请求消息,当客户端和服务端建立TCP连接后,客户端就会向服务器发送一个请求信息,如:[1]GET/HTTP/1.1[2]Accept:image/gif,image/x-xbitmap,image/jpeg,客户端可识别的内容类型列表。[3]Accept-Language:zh-cn客户端所能解释的语言:简体中文[4]UA-CPU:x86[5]Accept-Encoding:gzip,deflate客户端可以解释的类型[6]User-Agent:Mozilla/4.0(compatible;MSIE7.0;WindowsNT)客户端浏览器型号[7]Host:提交请求页面[8]Connection:Keep-AliveTCP连接保持打开[9]该请求信息主要由4部分组成请求方法URI协议/版本:以上代码第[1]行“GET”表示请求方法,,“HTTP/1.1代表协议和协议的版本,HTTP请求可以使用多种请求方法,最常用的为GET和POST方法请求头:[2]-[8]行,包含许多有关客户端环境和请求正文的有用信息。空行:[9]请求头和请求正文之间是一个空行,这个行非常重要,表示请求头已经结束,接下来是正文,这个行非常重要,它表示请求头已经结束,接下来是请求正文。请求正文。请求正文中可以包含客户提交的查询字符串信息,如用

1 / 32
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功