一、HTTP瓶颈

随着信息技术的飞速发展,IT世界早已发生了翻天覆地的变化。与此同时,HTTP使用上的瓶颈已经逐渐凸显了。
在一些信息更新非常频繁的网站,当成千上百的用户发布内容的时候,网站为例保存这些新增的内容,会在很短的时间内发生大量的内容更新。为了尽可能地实时显示这些更新的内容,这就需要实时关注这服务器上的更新动态。但是非常遗憾的是,HTTP无法处理好这样的一项任务。
为什么呢?假如要使用HTTP来做这项工作的话,就必须非常频繁地和服务器进行交接,但这会产生非常多的无用通信。
再问一次为什么?因为HTTP协议里的一些标准规则让这一项工作成为一个瓶颈,如下所示:

相关的标准
一条连接上只可以发送一个请求
请求只能从客户端开始
客户端不可以接受除响应以外的指令
请求/响应首部未经压缩就发送,首部信息越多,延迟越大
发送冗长的首部,每次互相发送相同的首部造成很多的浪费
可以任意选择数据压缩格式

浅谈HTTPS和HTTP(二)
图1:以往的HTTP通信顺序图

二、解决方法

1. Ajax

Ajax(Asunchronous JavaScript and XML),这项技术出现的时候,颠覆了整个Web世界。实际上,它并不是一项全新的技术,只是把一些原有的技术进行一个结合。在Ajax出现以前,每次请求都要对整个网页进行刷新,这对于当时的时代来说,确实没什么,网站需求少,一个网页基本就一个内容。但是在我们今天看来,那简直是糟糕的体验。
现在是SPA开发的潮流,这也将逐渐成为下一代WEB的热潮,也就是单网页应用。废话多说,以后再开个系列来讲吧!
Ajax能有效利用JS和DOM的操作,让网页的局部发生变化,也就是异步通信。以往需要刷新加载整个页面,但是Ajax只需加载一部分,这大大减少了页面的请求数。

2、Comet

浅谈HTTPS和HTTP(二)

浏览器作为 Web 应用的前台,自身的处理功能比较有限。浏览器的发展需要客户端升级软件,同时由于客户端浏览器软件的多样性,在某种意义上,也影响了浏览器新技术的推广。在 Web 应用中,浏览器的主要工作是发送请求、解析服务器返回的信息以不同的风格显示。AJAX 是浏览器技术发展的成果,通过在浏览器端发送异步请求,提高了单用户操作的响应性。但 Web 本质上是一个多用户的系统,对任何用户来说,可以认为服务器是另外一个用户。现有 AJAX 技术的发展并不能解决在一个多用户的 Web 应用中,将更新的信息实时传送给客户端,从而用户可能在“过时”的信息下进行操作。而 AJAX 的应用又使后台数据更新更加频繁成为可能。

3、SPDY

部分内容参考自:《Comet技术详解:基于HTTP长连接的Web端实时通信技术》

相关文章: