什么是HTTP/2?
HTTP/2 是 HTTP 协议的第二个主要版本,2015年由 IETF 正式发布(RFC 7540)。你可以把它理解为 HTTP/1.1 的"性能增强版"。
它的目标很明确:让网页加载更快、更高效。
为什么需要HTTP/2?
HTTP/1.1 用了十几年,问题越攒越多。想象一下:
你去餐厅吃饭,点了10道菜。服务员一次只能端一道菜,你必须等上一道上桌了,才能点下一道。这就是 HTTP/1.1 的"串行"问题——浏览器要一个一个请求图片、CSS、JS 文件。
虽然 HTTP/1.1 后来加了"并发连接"(多叫几个服务员),但每个连接还是只能一次端一道菜。而且开太多连接还会互相打架。
HTTP/2的三大杀手锏
1. 多路复用——同时上菜
HTTP/2 把所有请求都放在一条连接里,像传送带一样同时传输多个文件。图片、样式表、脚本互不阻塞。
这就像餐厅有了传送带系统,10道菜可以同时上桌,而且不会搞混。
2. 头部压缩——少说话多干活
HTTP/1.1 每次请求都要带上完整的 HTTP 头(Cookie、User-Agent 等信息),有些请求头比实际内容还大。
HTTP/2 使用 HPACK 算法压缩头部,重复的信息只传一次。相当于服务员不用每次都念一遍菜单,记住了你爱吃什么。
3. 服务器推送——主动给你
HTTP/1.1 里,浏览器必须先请求文件,服务器才发过来。
HTTP/2 支持服务器推送(Server Push),服务器可以预测浏览器需要什么,提前把文件推过去。比如浏览器刚请求首页,服务器就把首页需要的 CSS 和 JS 一起塞给它。
HTTP/2 和 HTTPS 的关系
很多人以为 HTTP/2 必须配合 HTTPS 使用。其实不是强制的,但现实中几乎所有 HTTP/2 网站都用 HTTPS。原因很简单:Chrome、Firefox 等主流浏览器只对 HTTPS 连接启用 HTTP/2。
所以结论是:想用上 HTTP/2,基本得先有 HTTPS。
怎么判断网站用了HTTP/2?
方法很简单:
- 打开浏览器开发者工具(F12)
- 切到 Network(网络)标签
- 刷新页面,看任意请求的 Protocol 列
- 如果显示
h2,说明用的是 HTTP/2
HTTP/2 带来的实际提升
根据 Cloudflare 的数据,启用 HTTP/2 后:
- 页面加载时间平均减少 20%-30%
- 移动端提升更明显,因为移动网络延迟更高
- 并发连接数从几十个降到一两个,服务器压力更小
总结
HTTP/2 不是推翻重来,而是在原有协议基础上做性能优化。它解决了 HTTP/1.1 最头疼的阻塞问题,让网页加载体验上了一个大台阶。
如果你的网站还在用 HTTP/1.1,升级到 HTTP/2 是最简单的提速方案之一——不用改代码,只要服务器支持就行。