http2.0 的改进
之前写的http2.0 的总结太过简单,现在理解加深,所以就重写一篇。
HTTP 1.x 的缺点
由于HTTP 1.x不支持多路复用(可以利用HTTP管道,但是不靠谱),每个请求都会创建一个TCP连接。HTTP 2.0 的目的就是通过支持请求与响应的多路复用来减少延迟。那http 2.0 解决的是什么延迟?
- 如图每次新建tcp连接前都要必须经过三次握手,这会带来一定的延迟,如果可以复用连接就可以省去这些开销 。
如果用TLS,握手次数就更多,延迟也会更高了 - 队首(HOL,Head of Line)阻塞
- DNS查询传输往返带来的延迟。
- HTTP 1.x 协议负载 太大,不会经过任何压缩
HTTP 1.x的优化很多时候都是通过减少请求来优化,例如图片精灵、js和css拼接成大文件等。
HTTP 2.0 的改变
- 流、消息和帧
- 首部压缩
- 请求优先级
- 服务器推送
- 多路复用
HTTP 1.x的瓶颈在于每个请求都新建一个TCP连接和报头信息开销大。HTTP 2.0 最主要利用了复用连接,减少了请求。在此基础上,再一环接一环地优化。
参考资料
【1】《web性能权威指南》