HTTP/2.0是什么?

HTTP/2.0 是超文本传输协议的第二主要版本,用来把网页从服务器搬到浏览器(或 App)的“高速公路升级版”。它兼容 HTTP/1.x 的语义(URI、方法、状态码、Cookie 等都不变),但把底层传输机制彻底重做,核心目标只有一个:让同一个连接更快、更省、更稳。一句话概括:

HTTP/2 在一条 TCP 连接里,用二进制分帧同时跑多条并行流,压缩头部、还能主动推送资源。


1. 物理视角:帧(Frame)——最小“集装箱”

  • 把一次请求/响应拆成若干 二进制帧(最大 16 KB),每种帧有类型、标志、流 ID。
  • 常见帧:
    • HEADERS:放压缩后的头部
    • DATA:放真正的 body
    • SETTINGS、WINDOW_UPDATE、PUSH_PROMISE、RST_STREAM……

2. 逻辑视角:流(Stream)——虚拟“车道”

  • 每个请求/响应被抽象成一条 逻辑流,用 31 位 ID 标识,奇数客户端发、偶数服务端发。
  • 无数帧可以交错发送,到达后再按流 ID 重组,天然多路复用,解决 HTTP/1.x 的“队头阻塞”。

3. 关键特性速览

痛点HTTP/1.xHTTP/2 解法
并发低6 条连接上限 + 队头阻塞一条 TCP 多路复用,百条流一起飞
头部冗余每次请求带完整 Cookie 几百字节HPACK 压缩,差量更新,节省 50%+
服务器只能被动响应浏览器必须先发请求PUSH_PROMISE 主动把资源推给客户端
无法控速TCP 拥塞一刀切逐流/逐连接 WINDOW_UPDATE 精细流控
文本解析慢 & 漏洞\r\n 分割,易被注入二进制长度前缀,解析快且安全

4. 生活化比喻

  • HTTP/1.0 像“单车道石子路+人工收费”——每辆车(请求)得停一次缴费,堵车是常态。
  • HTTP/2 变成“多车道高速+ETC”——一次领卡(连接),无数车并行跑,ETC 自动扣费(压缩),服务区还能把盒饭提前送到你车上(推送)。

5. 与 HTTP/1 完全兼容

方法、状态码、缓存、Cookie、SSL 全部照用,前端代码一行不改就能享受加速;浏览器和服务器只在传输层悄悄换成“二进制帧”。


6. 现状

  • 2015 年 5 月 RFC 7540 发布,现在 95%+ 的浏览器和主流 CDN/云厂商默认开启
  • 明文版本(h2c)几乎没人用,事实强制走 TLS(ALPN 协商 “h2”)。
  • 因为仍依赖 TCP,丢包时所有流一起等重传,所以新一代 HTTP/3(QUIC) 已把传输层换成 UDP,继续升级。

一句话记住:
HTTP/2 就是“把多条 HTTP/1 请求拆成二进制小帧,塞进同一条 TCP 管道里同时跑,还能压缩头部、偶尔推点资源”的协议。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胡彬彬的笔记本

非常感谢您的鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值