HTTP 协议发展探讨

 

•  HTTP 协议概述

万维网 WWW(World Wide Web) 之父蒂姆·贝纳斯·李早在 1990 年就提出了超文本传输协议 HTTP ( Hyper Text Transport Protocol ), HTTP 是 WWW 的基本协议。所谓超文本是与传统文本相比较而言。传统文本,无论是书本、计算机的文本文件,都是线性的,读者在阅读时,必须一页一页顺序地读,读者没有选择的余地。超文本与此不同,它不是一个线性的结构,而是一个非线性的网状结构。读者在阅读时,就不必像读线性文章时以顺序方式向下读,而是有选择地读自己感兴趣的部分。

HTTP 的工作过程为典型的客户 / 服务器工作模式,客户即为 WWW 浏览器,服务器即是 WWW 服务器。 HTTP 的工作过程使用请求 / 响应握手方式:①客户发生连接,双方建立起一个 TCP 连接;②客户发出请求;③服务器处理请求, 返回应答;④服务器关闭连接。

HTTP 的主要特点如下:

1) 简单快速

HTTP 本身既简单,又能有效地处理大量请求。在客户机与服务器连接后,客户机必须传送的信息只是请求方法和路径。正是因为 HTTP 简单,使得 HTTP 服务器程序规模小,而且简单。因此经由 HTTP 的通信速度很快,与其它协议相比,时间开销小得多。

2) 无连接

HTTP 是一个无连接协议。它的含义是限制每次连接只处理一个请求、客户机与服务器连接后提交一个请求,在客户机接到应答后马上断开连接。使用这种无连接协议,在没有请求时,服务器不会在那里闲等着,服务器更不会在完成一个请求后还把着原来的请求不放。使用无连接协议就好像是写信,一旦写好信发出便没事了。对方回信有了新信息,再写另一封信。而保持连接协议就跟打电话相似。双方轮番说许多话后才挂断。在对话期间电话线一直被占用。对于无连接协议而言,服务器一方实现起来比较容易,又能充分利用网上的资源。

3) 无状态

HTTP 是无状态的协议:每一次请求,应答的内容、状态及完成情况不作为历史数据保留到下一阶段使用。它既是优点也是缺点。一方面,由于没有状态, 协议对事物处理没有记忆能力。如果后续事物处理需要前面处理的有关信息,那么这些信息必须在协议外面保存。缺少状态意味着所需要的前面信息必须重现, 势必导致每次连接要传送较多的信息。另一方面,也正是由于缺少状态使得 HTTP 累赘少,运行速度高,服务器应答快。

4 )内容协商

当服务器能够对客户的请求提供多种表示形式应答时,需要使用内容协商机制,使 Web 服务器可以从中挑选出能满足用户要求的具有最适合表达形式的资源实体。因为很多时候源服务器或提供缓存的中间服务器并不会有一个统一的最佳资源形式标准,而用户端浏览器也不一定有能力处理所有的实体类型。

5 )易于扩充

作为一个公开发布使用协议, HTTP 具有良好的可扩充性,它传输的已不仅仅是超文本数据。在此基础上针对应用开发者的研究、开发要求,可以很容易地增加请求方法和响应状态,运行于用户定制的系统之中。经过扩充的服务器,能够响应原有标准的浏览器,也能够区别出用户自己开发的专用客户程序,做出相应的响应处理。

•  HTTP 协议发展

WWW 联盟成立后,组织了 IETE ( Internet Engineering Task Force) 小组进一步完善和发布 HTTP 协议。至今, HTTP 协议经历了 0.9 、 1.0 、 1.1 三个阶段。

1 ) HTTP/0.9 特征:①适用于各种数据信息的简洁快速协议;②具有典型的无状态性;③无连接性;④无法使用内容协商;⑤无法显示和处理图片。

2 ) HTTP/1.0 特征:①简单快速;②无状态性;③无连接性;④无法使用内容协商;⑤增加了元信息:在主要数据前加上一块信息,即信息的信息。它使服务器能够提供传送数据的有关信息。例如, 传送对象是哪种类型, 是用哪种语言书写的等等;⑥支持多种内容的形式,如图片、音频等。

3)HTTP /1.1 特征:①持续性连接:允许请求一个 web 页面的浏览器发起一次连接就可从服务器上下载多个文件;②仍无状态性,但可提供状态控制;③新增加了资源请求:在原有 GET 、 HEAD 、 POST 几种方法的基础上增加了 OPTIONS 、 PUT 、 DELETE 和 TRACE ;④身份认证:一种简单的“提问 - 回答”式的基本访问授权方法。过程是先由服务器向客户发出身份鉴别请求,再由客户发出确认信息;⑤使用内容协商机制;⑥缓存 (Cache) 机制:将先前的客户请求以及请求所对应的 Web 服务器响应的内容暂时保存在机器的内存或物理存储器中,使得在处理新的客户请求时可以利用。

•  下一代 HTTP 协议

随着 HTTP 的发展, 人们不断要求对其功能进行扩展和使之具有新的特色, 结果使得 HTTP/1.x 成为一种相当复杂和庞大的协议。 HTTP/1.x 中的弱的模块化方法和较差的性能状态越来越不适应需要。它层次不清,也就难于适应 Web 发展的需求。现在正在研究的下一代超媒体文件传输协议 HTTP-NG(HTTP-Next Generation) 很可能会取代现有的 HTTP 。 HTTP-NG 的最大变化是客户机可以一次连续发送多个请求,服务器依次响应每个请求。方法可进一步缩短服务器的响应时间,提供更加高效优质的服务。

你可能感兴趣的:(数据结构,应用服务器,工作,Web,浏览器)