AJAX、COMET、SPDY、HTTP/2分析与比较

最后面为个人观点,若有不正确之处,还请指教

AJAX即异步的 JavaScript 和 XML, 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。AJAX应用可以仅向服务器发送并取回必须的数据,并在客户端采用JavaScript处理来自服务器的回应。因为在服务器和浏览器之间交换的数据大量减少,服务器回应更快。同时,很多的处理工作可以在发出请求的客户端机器上完成,因此Web服务器的负荷也减少了。

COMET是一种用于web的推送技术,能使服务器实时地将更新的信息传送到客户端,而无须客户端发出请求,当前有两种实现方式,长轮询和HTTP流。长轮询:页面发起一个到服务器的请求,然后服务器一直保持连接打开,直到有数据可发送。发送完数据之后,浏览器关闭连接,随即又发起一个到服务器的新请求。HTTP流:生命周期内只使用一个HTTP连接。浏览器向服务器发送一个请求,而服务器保持连接打开,然后周期性地向浏览器发送数据。

SPDY是TCP的会话层协议,用以最小化网络延迟,提升网络速度,优化用户的网络使用体验。SPDY是对HTTP协议的增强。新协议的功能包括数据流的多路复用、请求优先级以及HTTP报头压缩。SPDY修改了HTTP的请求与应答在网络上传输的方式;这意味着只需增加一个SPDY传输层,现有的所有服务端应用均不用做任何修改。 当使用SPDY的方式传输,HTTP请求会被处理、标记简化和压缩。比如,每一个SPDY端点会持续跟踪每一个在之前的请求中已经发送的HTTP报文头部,从而避免重复发送还未改变的头部。而还未发送的报文的数据部分将在被压缩后被发送。

HTTP/2 的主要目标是通过支持完整的请求与响应复用来减少延迟,通过有效压缩 HTTP 标头字段将协议开销降至最低,同时增加对请求优先级和服务器推送的支持。其功能有用以最小化网络延迟,提升网络速度,优化用户的网络使用体验。此外,其实现的技术有无需先入先出的多路复用;为简化客户端和服务器开发的消息—帧机制强制性压缩(包括HTTP头部)优先级排序双向通讯。

四者之间的关系

AJAX 是一种从页面向服务器请求数据的技术,COMET可以说是一种更高级的AJAX 技术,它用于服务器向页面推送数据。COMET 能够让信息近乎实时地被推送到页面上。

HTTP/2的开发基于SPDY进行跃进式改进。在诸多修改中,最显著的改进在于,HTTP/2使用了一份经过定制的压缩算法,基于霍夫曼编码,以此替代了SPDY的动态流压缩算法,以避免对协议的Oracle攻击。此外,HTTP/2禁用了诸多加密包,以保证基于TLS的连接的前向安全。

总体而言,HTTP/2是SPDY的改进版。而AJAX的核心就是通过javascrit程序调用而发起的一次http请求。请求加载网页时先发送HTTP请求,这时候采用的技术为普通HTTP/2技术。当要实现局部页面刷新时在基于HTTP/2的基础上采用AJAX技术异步向服务器获取数据加载到页面上面。当服务器数据发生更新后,COMET会自动将数据发送给浏览器,数据传送方式也是基于HTTP/2。

 

 

猜你喜欢

转载自blog.csdn.net/weixin_39359584/article/details/89735978
今日推荐