欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

SPDY 有大用

SPDY(读作“SPeeDY”)是Google开发的基于TCP的会话层 [1]  协议,用以最小化网络延迟,提升网络速度,优化用户的网络使用体验。SPDY并不是一种用于替代HTTP的协议,而是对HTTP协议的增强。新协议的功能包括数据流的多路复用、请求优先级以及HTTP报头压缩。谷歌表示,引入SPDY协议后,在实验室测试中页面加载速度比原先快64%。
  • 中文名

  • spdy协议

  • 外文名

  • spdy

  • 读    作

  • SPeeDY

  • 开发公司

  • Google

  • 基    于

  • TCP

  • 功    能

  • 数据流的多路复用、请求优先级以及HTTP报头压缩

功能

编辑
定位
  • 将页面加载时间减少50%。
  • 最大限度地减少部署的复杂性。SPDY使用TCP作为传输层,因此无需改变现有的网络设施。
  • 避免网站开发者改动内容。 支持SPDY唯一需要变化的是客户端代理和Web服务器应用程序。
具体技术目标
  • 单个TCP连接支持并发的HTTP请求。
  • 压缩报头和去掉不必要的头部来减少当前HTTP使用的带宽。
  • 定义一个容易实现,在服务器端高效率的协议。通过减少边缘情况、定义易解析的消息格式来减少HTTP的复杂性。
  • 强制使用SSL,让SSL协议在现存的网络设施下有更好的安全性和兼容性。
  • 允许服务器在需要时发起对客户端的连接并推送数据。 [2] 

原理

编辑
在SSL层上增加一个SPDY会话层,以在一个TCP连接中实现并发流。
SSL层上增加SPDY会话层SSL层上增加SPDY会话层
通常的HTTP GET和POST格式仍然是一样的;然而SPDY为编码和传输数据设计了一个新的帧格式。
流是双向的,可以在客户端和服务器端启动。
SPDY旨在通过基本(始终启用)和高级(可选启用)功能实现更低的延迟。 [3] 

基本特征

编辑
  • 复用流:SPDY允许在一个连接上无限制并发流。因为请求在一个通道上,TCP效率更高:更少的网络连接,发出更少更密集的数据包。
  • 请求优先级:虽然无限的并发流解决了序列化的问题,但他们引入了另一个问题:如果带宽通道受限制, 客户端可能会因防止堵塞通道而阻止请求。为了克服这个问题,SPDY实行请求优先级:客户端从服务器端请求它希望的项目数量,并为每个请求分配一个优先级。这可以防止在网络通道被非关键资源堵塞时,高优先级的请求被挂起。
  • HTTP报头压缩:SPDY压缩请求和响应HTTP报头,从而减少传输的数据包数量和字节数。

高级特征

编辑
SPDY提供了高级特征:服务器启动流。服务器启动流能用来分发内容到客户端,而不需要客户端发起请求。此选项可以由Web开发人员通过如下两种方法配置:
  1. Server push:SPDY通过X-Associated-Content头试验了服务器推送数据给客户端的选项。这个头告诉客户端服务器将在客户端请求资源之前,推送资源给它。对于初始页面下载(例如用户初次访问这个网站),这样能大大提升用户体验。
  2. Server hint:相对于自动推送资源到客户端,在服务器事先知道客户端需要的资源的情况下,服务器使用X-Subresources头建议客户端请求特殊的资源。但是,服务器仍然在发送内容前等待客户请求。通过窄带,这个选项能减少一个客户端发现它所需要的资源的数百毫秒,可能更适合于非初始页面加载。

关系

编辑
SPDY并不用于取代HTTP/1.x,它只是修改了HTTP/1.x的请求与应答在网络上传输的方式;这意味着只需增加一个SPDY传输层,现有的所有服务端应用均不用做任何修改。 当使用SPDY的方式传输,HTTP请求会被处理、标记简化和压缩。比如,每一个SPDY端点会持续跟踪每一个在之前的请求中已经发送的HTTP报文头部,从而避免重复发送还未改变的头部。而还未发送的报文的数据部分将在被压缩后被发送。
SPDY协议类似于HTTP,但旨在缩短网页的加载时间和提高安全性。SPDY协议通过压缩、多路复用和优先级来缩短加载时间。 [2] 

浏览器支持

编辑
Google Chrome和Chromium已经支持SPDY。
Mozilla Firefox自11.0开始内嵌支持SPDY。从Firefox 13开始默认开启对SPDY的支持。
Opera从12.10开始支持SPDY。
Internet Explorer 11开始支持SPDY。
注意:由于SPDY协议已被HTTP/2协议取代,上述浏览器的新版本可能不再支持SPDY协议。

取代

编辑
互联网工程任务组IETF)对谷歌提出的SPDY协议进行了标准化,于2015年5推出了类似于SPDY协议的 HTTP 2.0 协议标准(简称HTTP/2)。谷歌因此宣布放弃对SPDY协议的支持,转而支持HTTP/2。谷歌称,计划于 2016 年初在 Chrome 中移除 SPDY,并将为Chrome 40 添加 HTTP/2 协议支持。
此外,著名的开源HTTP服务器软件 Nginx 也于2015年9月移除了对SPDY的支持,转而支持HTTP/2。
鉴于此,未来会有越来越多的浏览器和Web服务器选择支持HTTP/2而非SPDY,以前支持SPDY的浏览器和Web服务器也会通过升级取消对SPDY的支持转为支持HTTP/2。
因此,建议新的网站不要部署SPDY,转为部署HTTP/2。旧有的SPDY部署也应尽快转移至HTTP/2,以符合浏览器对新HTTP标准的支持。 [3] 


来自 https://baike.baidu.com/item/SPDY/3399551?fromtitle=spdy%E5%8D%8F%E8%AE%AE&fromid=15652060&fr=aladdin



普通分类: