网络百科 知识 超文本传输协议的解释 意思

超文本传输协议的解释 意思

超文本传输协议 : 一个应用层的面向对象的协议,用于分布式超 媒体信息系统。它于1990年提出,最初的版本只能 用于在Internet上传输原始数据。经过多年的使用 与发展,得到不断地完善和扩展。HTTP协议支持 的服务不限于WWW,还可以是其他服务,因而 HTTP协议允许用户在统一的界面下,采用不同的 协议访问不同的服务,如FTP、Archie、SMTP、NNTP 等。另外,HTTP协议还可用于名字服务器和分布 式对象管理。HTTP协议的主要特点为:
(1)支持客户/服务器模式。
(2)简单快速: 客户向服务器请求服务时,只 需传送请求方法和路径。请求方法常用的有GET、 HEAD、POST。每种方法规定了客户与服务器联系 的类型不同。由于HTTP协议简单,使得HTTP服 务器的程序规模小,因而通信速度很快。
(3)灵活: HTTP允许传输任意类型的数据对 象。正在传输的类型由Content-Type加以标记。
(4)无连接: 无连接的含义是限制每次连接只 处理一个请求。服务器处理完客户的请求,并收到 客户的应答后,即断开连接。采用这种方式可以节 省传输时间。
(5)无状态: HTTP协议是无状态协议。无状态 是指协议对于事务处理没有记忆能力。缺少状态意 味着如果后续处理需要前面的信息,则它必须重传, 这样可能导致每次连接传送的数据量增大。另一方 面,在服务器不需要先前信息时它的应答较快。
HTTP协议基于请求/响应方式进行运作。一个 客户机与服务器建立连接后,发送一个请求给服务 器,请求方式的格式为统一资源标识符、协议版本 号,后边是MIME信息,包括请求修饰符、客户机 信息和可能的内容。服务器接到请求后,给予相应 的响应信息,其格式为一个状态行,包括信息的协 议版本号、一个成功或错误的代码,后边是MIME 信息,包括服务器信息、实体信息和可能的内容。
许多HTTP通信是由一个用户代理初始化并且 包括一个申请源服务器上资源的请求。最简单的情 况可能是在用户代理(UA)和源服务器(O)之间通过 一个单独的连接来完成,如图1所示。

 

图1 单独连接的HTTP通信

当一个或多个中介出现在请求/响应链中时, 情况就变得复杂一些。中介由代理(proxy)、网关 (gateway)和通道(tunnel)组成。一个代理根据URI 的绝对格式来接受请求,重写全部或部分消息,通 过URI的标识把已格式化过的请求发送到服务器。 网关是一个接收代理,作为一些其他服务器的上层, 并且如果必须的话,可以把请求翻译给下层的服务 器协议。一个通道作为不改变消息的两个连接之间 的中继点。当通信需要通过一个中介(例如: 防火墙 等)或者是中介不能识别消息的内容时,通道经常被 使用。

 

图2 通过中介的HP通信

图2 表明了在用户代理(UA)和源服务器(O) 之间有三个中介(A、B和C)。一个通过整个链的请 求或响应消息必须经过四个连接段。图2的连接是 线性的,每个参与者都可能从事多重的、并发的通 信。例如,B可能从许多客户机接收请求而不通过 A,并且/或者不通过C把请求送到A,同时它还 可能处理A的请求。
任何针对不作为通道的汇聚可能为处理请求启 用一个内部缓存。缓存的效果是请求/响应链被缩 短,条件是沿链的参与者之一具有一个缓存的响应 作用于那个请求。图3说明结果链,其条件是针对 一个未被UA或A加缓存的请求,B有一个经过C 来自O的一个前期响应的缓存拷贝。

 

图3 有缓存的HTTP通信

在Internet上,HTTP通信通常发生在TCP/IP 连接之上。缺省端口是TCP80,但其他的端口也是 可用的。但这并不预示着HTTP协议在Internet或 其他网络的其他协议之上才能完成。HTTP只假定 一个可靠的传输。
HTTP协议的内部操作过程如图4所示,它分 四个过程,建立连接、发送请求信息、发送响应信 息、关闭连接。

 

图4 基于HTTP协议的客户/服务器模式信息交换过程

在WWW中,“客户”与“服务器”是一个相 对的概念,只存在于一个特定的连接期间,即在某 个连接中的客户在另一个连接中可能作为服务器。 WWW服务器运行时,一直在TCP80端口(WWW 的缺省端口)监听,等待连接的出现。
HTTP协议基于请求/响应方式,其信息交换 的实现过程如下:
(1)建立连接: 连接的建立是通过申请套接字 (socket)实现的。客户打开一个套接字并把它绑定在 一个端口上,如果成功,就相当于建立了一个虚拟 文件。以后就可以在该虚拟文件上写数据并通过网 络向外传送。
(2)发送请求: 打开一个连接后,客户机把请 求消息送到服务器的端口上,完成提出请求动作。
(3) 发送响应: 服务器在处理完客户的请求之 后,要向客户机发送响应消息。
(4)关闭连接: 客户和服务器双方都可以通过 关闭套接字来结束TCP/IP对话。

返回顶部