HTTP/2 是 HTTP 协议的第二个主要版本,由 IETF 于 2015 年标准化。它通过二进制分帧、多路复用和头部压缩等技术,大幅提升网页加载速度,已被全球主流浏览器和网站广泛采用。

| 类型 | 网络传输协议 |
| 制定机构 | IETF(HTTP 工作组) |
| 推出时间 | 2015年 |
| 前身 | HTTP/1.1、SPDY |
| 标准文档 | RFC 7540 |
| 官网 | httpwg.org |
HTTP/2 是超文本传输协议(HTTP)的第二个主要版本,用于万维网上浏览器与服务器之间的数据传输,在加密连接上简称 h2,在非加密连接上简称 h2c。
HTTP/2 由 IETF 的 HTTP 工作组制定,于 2015 年正式发布为标准(RFC 7540),其设计大量借鉴了 Google 早期的实验性协议 SPDY。它是 HTTP/1.1 发布多年之后的首次重大升级,目标是在不改变原有语义(方法、状态码、头字段等保持兼容)的前提下,解决旧版本在性能上的瓶颈。
HTTP/1.1 时代,一个连接同一时刻只能处理一个请求,网页资源多时容易出现排队等待(队头阻塞),开发者不得不用合并文件、域名分片等手段绕路。HTTP/2 从传输层面重新设计了数据交换方式,让这些优化手段基本成为历史。虽然标准并未强制加密,但主流浏览器只支持基于 TLS 的 h2,因此实际部署中 HTTP/2 几乎总是与 HTTPS 一起使用。
HTTP/2 仍运行在 TCP 之上,当网络丢包时整个连接内的所有流都会受影响。为解决这一问题,后续的 HTTP/3 改用基于 UDP 的 QUIC 传输协议。目前两者长期共存,HTTP/2 依然是当前互联网上部署最广泛的版本之一。
问:HTTP/2 必须用 HTTPS 吗?答:标准本身允许明文的 h2c,但主流浏览器只实现了基于 TLS 的 h2,所以面向普通用户的网站启用 HTTP/2 实际上必须先配置 HTTPS。
问:升级到 HTTP/2 需要改网站代码吗?答:一般不需要。HTTP/2 保持了原有 HTTP 语义,只需服务器(如 Nginx、Apache 或 CDN)开启支持即可,业务代码无感知。
问:如何查看网站是否启用了 HTTP/2?答:在浏览器开发者工具的网络面板中查看协议列,显示 h2 即表示该请求走的是 HTTP/2。

| 类型 | 网络传输协议 |
| 制定机构 | IETF(HTTP 工作组) |
| 推出时间 | 2015年 |
| 前身 | HTTP/1.1、SPDY |
| 标准文档 | RFC 7540 |
| 官网 | httpwg.org |
登录 后参与讨论
暂无讨论,来发表第一条评论吧