BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Google正制订一项新协议,旨在替换掉HTTP

| 作者 Abel Avram 关注 10 他的粉丝 ,译者 张龙 关注 14 他的粉丝 发布于 2009年11月18日. 估计阅读时间: 5 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

近日Google提出了SPDY——运行在SSL上的一个应用层协议,该协议旨在替换掉HTTP,而后者被认为会产生延迟。Google已经使用Web服务器与增强的Chrome浏览器开发了一个原型,结果是页面加载速度比以前快了2倍。

前一阵Google发出的倡议“让Web变得更快”旨在提高Internet的速度。该倡议涵盖了几个领域,从构建更快的Web服务器到更快的浏览器。例如,Page Speed就是个用来提高网页下载速度的工具。Google在开源大量工具的同时又发布了相关的教程以帮助全世界的开发者加快其Web站点的速度。

然而Google并没有裹足不前,他们开发了一个名为SPDY(发音为SPeeDY)的新的应用协议,一旦成功并得到广泛应用的话,SPDY就会替换掉HTTP并彻底颠覆整个Internet。SPDY白皮书说要向协议栈下面渗透并替换掉传输层协议(TCP),但Google也认识到这样的话部署起来会相当困难,因此他们打算对应用层协议HTTP进行改进。

SPDY白皮书提到了HTTP协议中的很多限制,尤其是页面传输时的延迟:

  • 一个请求一个连接。由于HTTP一次只能获取一个资源(HTTP管道很有用,但也只是强制形成一个FIFO队列),因此500毫秒的服务器端延迟导致无法重用TCP通道来处理其他请求,而浏览器则通过发送多个连接来解决这一问题。自从去年以来,浏览器已经将每个域的连接由2个调整为了6个。
  • 只有客户端才能发送请求。在HTTP中,只有客户端才可以发送请求。即便服务器端知道客户端需要某个资源,那它也没有办法通知客户端而只能等待其发出对该资源的请求。
  • 未压缩的请求与响应头。如今的请求头的大小差别很大,从200 bytes到2KB的都有。随着应用越来越多地使用cookie和user agents扩展特性,700-800 bytes的头大小已经变得很常见了。对于modem或是ADSL连接来说,上行带宽都很低,这种延迟就变得很可观了。降低头中的数据可以改进发送请求的序列化延迟。
  • 冗余的头。此外,有几个头会跨越请求在同一个通道上重复发送。像User-Agent、Host和Accept*这样的头基本都是不变的,没必要重复发送。
  • 可选的数据压缩。HTTP对数据进行可选的压缩编码。内容总是应该以压缩格式发送。

SPDY的一个目标就让页面加载时间降低50%,同时将浏览速度提升一倍。对一个用户来说,几百毫秒不算什么,但每一毫秒都会对未来高度互联的Web应用产生积极的影响。当前Web上的内容并不会受到该协议的影响,只有Web服务器和客户端需要增强以充分利用该协议。

Google究竟想用SPDY做什么呢?

  • 在单个TCP会话上执行多个并发的HTTP请求。
  • 通过压缩头以及减少不必要的头来降低当前HTTP所占据的带宽。
  • 定义一个易于实现且提升服务器效率的协议。我们希望通过砍掉一些边缘情况来降低HTTP的复杂度并定义易于解析的消息格式。
  • 将SSL作为底层传输协议以达到更好的安全性且兼容于现有的网络基础设施。尽管SSL引入了延迟,但我们相信从长远来看,Web还是要依赖于安全的网络连接的。此外,要想保证跨越现有代理的通信不被破坏,SSL也是必须的。
  • 让服务器可以主动与客户端通信并向客户端发送数据。

为了达成这些目标,Google在SSL之上增加了一个会话层来实现SPDY,这考虑到了“单个TCP连接之上会有多个并发、交错的流”。HTTP GET和POST消息格式保持不变,但SPDY提出了一个新的“帧格式用于在线路上编码和传输数据”。流是双向的,客户端与服务器端都能开启流。

到目前为止,Google构建了一个既能处理HTTP协议,也能处理SPDY协议的内存服务器,代码将在不久后开源。还有一个修改的Chrome版本(内部的暂定名为flip,也是开源的)运行在HTTP和SPDY之上。他们还开发了一套测试工具集来保证使用SPDY后页面仍能正确下载。这些工具也将于不久之后发布。

原型表明目前的结果还是很不错的:

我们通过模拟的家庭网络连接下载了百强网站的25个,只有1%的包丢失。每个站点都被下载了10次并计算平均的页面加载时间,然后计算所有站点的平均时间。结果表明普通TCP(没有SSL)上的页面加载时间要比HTTP提升了27% - 60%,而SSL要提升39% - 55%。

纵然提出了最好的协议,但显然Google无法凭借一己之力取得成功,还需要依靠社区的推动与努力来创建一个全新的应用层协议。其他公司对此有何反应呢,让我们拭目以待。

参考资源:SPDY协议草案规范可以使用SPDY的Chrome

查看英文原文:Google Works on a Protocol Intended to Replace HTTP

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

google无所不能 by zheng jeff

搜索=》浏览器=》操作系统=》开发语言=》通信协议=》。。。
google全方位扩张。。。。

google正在朝着下一代IT黑帮老大 by Jing Yucheng

通过搜索引擎建立了强大的数据资源基础,现在Google涉足IT的各个领域,估计不久的将来,又一个IT黑帮老大出现了,唉~期待中国的强大

有一点让人感觉不是很好 by Nathan Li

Google说SPDY会让速度网站变快,而变快的网站排名更高,因此使用SPDY会让网站排名更高

这有一种“顺我者昌,逆我者亡”的味道,让人感觉不是很好

Re: 有一点让人感觉不是很好 by jiang rosen

总的来说,让世界变得更快更有效率是好的。

忽悠 by chen index

google很喜欢搞出些beta版的东西试图替换掉现有广泛使用标准,搞笑,以为自己是上帝。更可笑的是还有一帮跟着起哄的人。

Re: 有一点让人感觉不是很好 by Jeffrey Zhao

嗯,只可惜如果是微软这么做,包管有人跳出来说又在破坏标准独断独行了。

它是怎么去测试的 by LV Kenton

百强网站并不支持SPDY,怎么去做对比测试?Google自己模拟百强网站?
还有,在SSL上做是不是必要呢?Google是不是想拖死某些人?

Re: 忽悠 by Zhang Jacky

就算google不是上帝,但他也是上帝之手了.

Re: 忽悠 by Wu Kymair

你才搞笑吧 照你这么说现有的标准就不能改了? 几百年前人们通信使用的标准还是书信呢,互联网怎么来的?别人出一个实验性的标准,还是开源的,就以为自己是上帝了?你还别说,互联网的发明者现在都在Google。
都别说让你创新了,别人创新你还冷嘲热讽。

Re: 它是怎么去测试的 by Wu Kymair

SSL是很有必要的,特别是对于咱中国人来说……

Re: 有一点让人感觉不是很好 by Nathan Li

总的来说,让世界变得更快更有效率是好的。


这是当然的,如果它真得可以做到的话 ...

Good! by wang jason

我很期待支持pull和push两种模式的交互手段,而不是以往只能由客户端进行Pull的方式。

Re: 有一点让人感觉不是很好 by 冯 希顺

嗯,只可惜如果是微软这么做,包管有人跳出来说又在破坏标准独断独行了。



如果微软以前没有干过破坏标准、居心不良的事儿,那么微软现在这么做也不会有人跳出来。。。


这就是道德的力量。Google最近干的这些事情,浏览器、操作系统、编程语言哪一件不可以看作是用心险恶、居心叵测?但是还有那么多人信任它——因为它以前在道德上没什么污点。等到它道德上有了污点了,它就不会像现在这样一呼百应了。


我希望Google能将它不作恶的道德形象保持下去,这样大家会觉得替换HTTP标准这样的事情也是有可能的。否则在一个缺乏信任的环境中,替换HTTP这种级别的标准实在是一件不可能完成的任务。

Re: Good! (有同感) by jong wake

这个将是革命性的!

赶快买Google的股票。(^_^)

Re: google正在朝着下一代IT黑帮老大 by Zhou Qingbo

别期待了,没戏

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

15 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT