分享

SPDY 协议介绍

 用勿龍潛 2012-03-22

SPDY 协议介绍

SPDY 目前是一种应用层实验性协议,旨在让互联网访问更快速,减少web页面的延迟。

SPDY 设计特点

协议在SSL层的基础上,增加了一个session 层,从而在一个tcp 连接基础上,实现了多并发和交叉流传输

HTTP 的GET ,POST 仍旧采用旧有的消息格式,当然SPDY 协议对原有的数据做了封装和编码,这里采用Wrapper设计模式。

流是双向的,比如,既可以从客户端发起,也可以从服务器端发起(PUSH)

SDPY的目标就是通过其基本特性和高级特性,来达到低访问延迟

基本特性包括

1  流复用

SPDY最牛逼的地方,是允许在一个TCP连接里面,允许无限并发流(在双方资源可承受的情况下)。因为请求是在一个单一的通道交错传输,TCP的可以达到很高的效率,从而更少的网络连接需要,可以以很高的 数据密度做传输。
2  具备优先级的请求
虽然无限的并行数据流的解决了序列化的问题,但是它们引入了另一个问题:如果由于信道带宽的限制,客户端可能会阻止怕堵塞通道的要求。为了克服这个问题,SPDY实现请求的优先次序:客户端可以请求尽可能多的项目,每个请求分配一个优先级。这样即使高优先级的请求仍处在pending状态,通道也不会传输非关键的,低优先级的请求,这样就有效地阻止了传输拥塞。
3  HTTP Header 压缩
对于HTTP 请求,响应头,SPDY都做了压缩,这样包更小,对于RESTFUL类型的WEB2.0 ,or OpenAPI 业务,将会有可观的效率提升。
高级特性

1  服务器端推送
SPDY通过X-Associated-Content 协议头来向客户端推送数据,头通知客户端,我要向你推送资源,准备接收好了。最近火爆的Google+ ,如果你用chrome浏览器,默认就采用SPDY技术,并且开启了服务器推送技术。服务器的推技术,全面提升了用户体验,是G+ 产品很快占据了足够多的优势,最近Facebook 开发自己的浏览器,也有摆脱现在技术限制的考虑
2  服务器暗示
不像上面提到的PUSH 技术,服务器会先告诉浏览器,你可以下载ABC资源了,这个ABC资源,可能就是下一个页面的JS ,CSS ,或者内容。服务器不会主动推送的,仍旧等待客户端请求,这对于低速网络,是个很大的优化,有点类似于我们的预加载技术
效果测试
TOP25 网站的平均页面加载时间
DSL 2 Mbps downlink, 375 kbps uplink Cable 4 Mbps downlink, 1 Mbps uplink
Average ms Speedup Average ms Speedup
HTTP 3111.916 2348.188
SPDY basic multi-domain* connection / TCP 2242.756 27.93% 1325.46 43.55%
SPDY basic single-domain* connection / TCP 1695.72 45.51% 933.836 60.23%
SPDY single-domain + server push / TCP 1671.28 46.29% 950.764 59.51%
SPDY single-domain + server hint / TCP 1608.928 48.30% 856.356 63.53%
SPDY basic single-domain / SSL 1899.744 38.95% 1099.444 53.18
SPDY single-domain + client prefetch / SSL 1781.864 42.74% 1047.308 55.40%

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多