1.HTTP/1.1的一些简单介绍

随着Web流量逐渐成为Internet的主导者,补救HTTP协议的弱点变得至关重要。W3C与Internet工程任务组(IETF)合作,对HTTP进行了许多改进,最终使该协议成为新的规范。这个称为HTTP / 1.1的新规范,最近才成为IETF草案标准。

IETF规范通过三个主要步骤进行:提议的标准标准草案 ; 最后是Internet标准。标准草案除具有特殊性质的细微改动外,均被视为最终规范。距互联网标准仅一步之遥,以IETF的话来说,该标准“稳定且易于理解,具有技术能力,具有多种,独立且可互操作的实施方式,并且具有丰富的操作经验,并获得了公众的大力支持,并且在Internet的某些或全部部分中公认是有用的。”

HTTP的标准化始于1994年末的IETF,W3C大力支持了这些工作。W3C投入了大量精力,尤其是来自HTTP / 1.1编辑和合著者Compaq的W3C访问科学家Jim Gettys,以及来自W3C的前工作人员和HTTP / 1.1的合著者Henrik Frystyk Nielsen。

W3C具有多个HTTP / 1.1实现,并且大量的开发人员已经表明了他们的兴趣。实验性的实现包括libwww客户端库W3C的Web服务器Jigsaw。这些是最早的HTTP / 1.1实现之一,它们在发现HTTP / 1.1建议标准中的错误中扮演了关键角色,并显示了该协议的全部潜力。

1.HTTP / 1.1的功能

HTTP / 1.1规范背后的工作重点是缓解HTTP / 1.0中最突出的问题,随着Web的不断发展,这导致了Internet上的严重瓶颈。结果就是制定了一个协议规范,它将使Web更快,更高效。感兴趣的三个主要特征如下:

1)支持虚拟主机

Web的快速发展为诸如mycompany.example.com之类的域名带来了狂热,而域名 对于企业的认可通常与徽标一样重要。域名的数量可能是无限的,但域名转换为的IP地址却不是,并且IP地址的枯竭已成为一个严重的问题。HTTP / 1.1 主机标头字段允许Web服务提供商以一种方式将多个域名分配给单个IP地址,以使Web服务器可以将mycompany.example.com主页与 yourcompany.example.net区别开来,而无需使用一个IP地址。

2)更有效地处理信息请求

HTTP使用Internet TCP / IP协议栈。您在Web上读取或写入的所有信息都以TCP / IP数据包的形式在整个网络上发送。TCP连接实际上就像是一个负责任的快递员在大城市(网络)中走动-它确保您发送和接收的数据切实地到达最终​​目的地,同时避免交通拥堵并允许其他人通过。有趣的是,TCP驾驶着一辆旧车-它需要一些时间来热身,一旦完成,它很快就会再次冷却。

为了有效运行,HTTP必须利用TCP / IP的优点并避免其缺点,而HTTP / 1.0并不能很好地做到这一点。每当客户端访问文档,图像,声音片段等。HTTP/ 1.0都会创建新的TCP连接,并且一旦完成,便立即将其关闭,并且从不重用。结果,TCP很少有时间变得温暖,只留下大量的“冷车”,很少的数据造成很多交通拥堵。

HTTP / 1.1通过两种方式解决了这个问题。首先,它允许客户端在与同一服务器通信时一次又一次地重复使用同一TCP连接(持久连接)。其次,确保快递员携带尽可能多的信息(流水线),以使它不必来回奔波。也就是说,HTTP / 1.1不仅使用更少的TCP连接,而且还可以确保更好地使用它们。结果是减少了交通拥堵并加快了交付速度。

3)高效缓存

您在网络上阅读的文档经常会同时被成千上万的其他人阅读。这当然会使服务器非常繁忙。想象一下,与其让每个人都与同一台服务器交谈,不如让人们在离他们更近的地方获得相同的信息。这就是缓存允许我们执行的操作。

尽管HTTP / 1.0仅启用了缓存,但它没有指定任何定义良好的规则来描述缓存应如何与客户端或原始服务器交互。缺乏控制导致大多数内容提供者和用户不信任HTTP / 1.0缓存模型,而是试图使其短路。结果是,Internet的许多繁忙部分陷入了更大的泥潭。HTTP / 1.1规范的主要部分致力于提供定义良好的缓存模型,该模型允许服务器和客户端都控制可缓存性级别以及缓存应更新其内容的条件。

2.摘要式身份验证

HTTP / 1.1的另一个重要部分是摘要身份验证规范。摘要式身份验证允许用户向服务器进行身份验证,而无需以明文形式发送密码,任何在网络上侦听的人都可以嗅探到密码。在HTTP / 1.0中,无需使用所谓的基本身份验证就可以加密发送密码。尽管没有提供真正的安全性,但摘要式身份验证是使Web成为更安全的生活场所的重要一步。

3.HTTP扩展框架

一个持续感兴趣的领域是如何根据特定应用程序的需求扩展HTTP。HTTP已经以很少有人能预料的方式在本地和全球范围内扩展。当前的工作范围很广,包括分布式创作,协作,打印和远程过程调用机制。通常的做法是将新的标头字段添加到协议,然后依靠另一端的软件来识别标头并进行相应的处理。但是,这相当于依靠魔术!迫切需要一个定义扩展的标准框架。

HTTP扩展框架提供了HTTP扩展一个简单而强大的机制。该框架使作者能够系统地引入扩展:程序员将能够指定引入了哪些扩展以及有关接收者是以及接收者应如何处理它们的信息。

自2000年2月起,该规范已作为实验RFC(RFC 2774)被接受。以下是一些已经在使用的W3C规范:Composite Capability/Preference Profiles (CC/PP)

Composite Capability/Preference Profiles (CC/PP)(CC / PP)是一种机制,用于描述与用户相关联的功能和首选项以及用户用于访问万维网的硬件和软件。Platform for Privacy Preferences (P3P)

P3P规范将使网站能够表达其隐私惯例,并使用户可以行使对这些惯例的偏好。P3P产品将使用户可以了解站点实践,并在可能的情况下将决策委派给他们的计算机,并允许用户调整与特定站点的关系。

Jigsaw已经有了扩展框架的实验性实现,并且libwww中的实现正在进行中。

4.W3C的作用

HTTP草案和规范是由IETF HTTP工作组制定的,W3C团队在其中负责编辑规范和提供示例实现。相关协议包括HTTP-NG规范HTTP扩展框架

5.现在的情况

Libwww和HTTP / 1.1

Libwww是一个高度模块化的通用客户端Web API,用Unix和Windows用C编写。它非常适合小型和大型应用程序,例如浏览器/编辑器,机器人,批处理工具等。libwww随附的可插拔模块包括完整的HTTP / 1.1(具有缓存,流水线,PUT,POST,摘要身份验证,放气等)。 )。对于所有W3C OpenSource代码,libwww的目的是为试验扩展和新功能提供一个环境。libwww的重点是性能,模块化和可扩展性。Libwww现在支持大量的作者社区,并且拥有许多新功能:HTML 4,XML,RDF,SSL等。

Jigsaw和HTTP / 1.1

Jigsaw不仅是服务器,它还提供可重用的HTTP / 1.1堆栈,并在其最新的2.1.1版本中具有符合RFC 2616的缓存。它允许每个Java程序使用HTTP / 1.1兼容堆栈,而无需进行修改。

从我们的分析中得出的持续结果表明,使用具有持久连接和流水线的HTTP / 1.1可以显着提高性能。我们还与使用libwww的管道功能的客户(例如Amaya)有实践经验。

6.HTTP扩展框架

从2000年2月开始,HTTP扩展框架现在称为RFC 2774。RFC是Request for Comments的缩写。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/basic/http/1879.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注