Http2的出现背景
思考一个问题:HTTP1到HTTP2这个进化这个过程是因为什么原因才出现的?它不可能平白无故就出现,它为什么一开始不就直接设计成HTTP2呢?这是什么原因呀?
请思考3分钟。
这个肯定是有这个环境背后的变化的。
原因只有一条:网页本身变了。
1996 年的 HTTP/1.0、1999 年的 HTTP/1.1,设计目标都是“文档传输”——一个 HTML、几张图、几行 JS,顺序请求、顺序响应就能满足。
但 2010 年以后,网页变成了“应用”:
- 一张页面动辄几十张高清图、上百个 CSS/JS 文件、实时数据、视频预览……
- 浏览器为了并行,不得不开 6~8 个 TCP 连接,每个连接都要三次握手、慢启动、SSL 握手,带宽浪费、延迟高。
- 队头阻塞让“一个慢请求拖死整页”,头部冗余把 500 字节的 Cookie 每次都重复发,浪费流量。
于是 Google 先做了 SPDY 实验:把 TCP 连接复用到极致,引入二进制分帧、多路复用、头部压缩、服务器推送,实测页面加载速度翻倍。
IETF 把 SPDY 的核心思想标准化,2015 年就成了 HTTP/2。
一句话:网页从“文档”变成“应用”,旧协议的性能瓶颈肉眼可见,才催生了 HTTP/2。