📑 题目:49. SPDY 是什么?
参考解析
2012 年,Google 如一声惊雷提出了 SPDY 的方案,优化了 HTTP1.X 的请求延迟,解决了 HTTP1.X 的安全性,具体如下:
1、降低延迟
针对 HTTP 高延迟的问题,SPDY 优雅的采取了多路复用(multiplexing)。多路复用通过多个请求 Stream 共享一个 Tcp连 接的方式,解决了 HOL blocking 的问题,降低了延迟同时提高了带宽的利用率。
2、请求优先级(request prioritization)
多路复用带来一个新的问题是,在连接共享的基础之上有可能会导致关键请求被阻塞。SPDY 允许给每个 request 设置优先级,这样重要的请求就会优先得到响应。
比如浏览器加载首页,首页的 html 内容应该优先展示,之后才是各种静态资源文件,脚本文件等加载,这样可以保证用户能第一时间看到网页内容。
3、header 压缩
前面提到 HTTP1.x 的 header 很多时候都是重复多余的。选择合适的压缩算法可以减小包的大小和数量。
4、基于 HTTPS 的加密协议传输
大大提高了传输数据的安全性。
5、服务端推送(server push)
采用了 SPDY 的网页,例如我的网页有一个
sytle.css
的请求,在客户端收到sytle.css
数据的同时,服务端会将sytle.js
的文件推送给客户端。当客户端再次尝试获取sytle.js
时就可以直接从缓存中获取到,不用再发请求了。? 和我们理解的服务端推送,有点(非常)不一样哈。
- SPDY 位于 HTTP 之下,TCP 和 SSL 之上,这样可以轻松兼容老版本的 HTTP 协议(将 HTTP1.x 的内容封装成一种新的 frame 格式),同时可以使用已有的 SSL 功能。