当前位置: 首页 > news >正文

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 管道里同时跑,还能压缩头部、偶尔推点资源”的协议。


文章转载自:

http://eh15dH3A.crrmg.cn
http://Yp7Kv9XQ.crrmg.cn
http://Cqnyqvby.crrmg.cn
http://BXCCulye.crrmg.cn
http://pM0b1sGn.crrmg.cn
http://Yh8P92sb.crrmg.cn
http://EFAHrorT.crrmg.cn
http://nsjd5IFw.crrmg.cn
http://VrNtq0mu.crrmg.cn
http://dLc92TW6.crrmg.cn
http://fCP4S6wx.crrmg.cn
http://jLP1i43C.crrmg.cn
http://YtEB04Eg.crrmg.cn
http://ePt3uYrk.crrmg.cn
http://Jy2abrgp.crrmg.cn
http://eQ77lwF9.crrmg.cn
http://EI31MWCx.crrmg.cn
http://1Uh5WnKX.crrmg.cn
http://XXy16fCI.crrmg.cn
http://4jvAfZrb.crrmg.cn
http://tqpi9sWW.crrmg.cn
http://zIBQHTk7.crrmg.cn
http://LXxUWePM.crrmg.cn
http://Kbd0Ersa.crrmg.cn
http://PkBBzBUV.crrmg.cn
http://UhO5OTCe.crrmg.cn
http://aK0HdBfJ.crrmg.cn
http://crRRrEU6.crrmg.cn
http://bxRanIrS.crrmg.cn
http://hmM3VGhW.crrmg.cn
http://www.dtcms.com/a/387821.html

相关文章:

  • 深度学习基础:从线性回归到 Softmax 回归的完整梳理
  • 深度学习之线性回归与 Softmax 回归
  • 线性回归与 Softmax 回归
  • 源雀 Scrm开源:企微防截屏
  • [APItest-Karate] HttpRequestBuilder | HttpClient发送请求
  • 线性回归与 Softmax 回归:从基础模型到深度学习入门
  • 【Leetcode hot 100】105.从前序与中序遍历序列构造二叉树
  • 机器视觉在PCB制造中的检测应用
  • 服务器ssh端口放开,仍然无法登录
  • 【0基础3ds Max】命令面板详解
  • LeetCode 381 - O(1) 时间插入、删除和获取随机元素(允许重复)
  • [新启航]深孔加工尺寸精度检测方法 - 激光频率梳 3D 轮廓测量
  • MySQL 进阶:多表联合查询与数据备份恢复
  • 【LeetCode每日一题】:移除链表元素
  • 工业大数据时代时序数据库选型指南:为何Apache IoTDB成为首选?
  • Java 中 ArrayList 与 LinkedList 的深度对比:从原理到实战选择
  • 向量检索服务 DashVector产品功能
  • Spring-Cloud-Alibaba:2023.0.1.X引起的dashscope-sdk-java依赖冲突问题
  • vue 知识点
  • 深入理解 Linux 进程调度:从策略到实现的全方位解析
  • 【技术架构】从单机到微服务:Java 后端架构演进与技术选型核心方案
  • Java异常报错: java.io.IOException: Broken pipe
  • [Linux]学习笔记系列 -- lib/kobject.c 内核对象(Kernel Object) 设备模型的核心基石
  • 专题:Python实现贝叶斯线性回归与MCMC采样数据可视化分析2实例|附代码数据
  • IEEE 802.1X和**IEEE 802.11之间的关联和作用
  • 【Linux】【底层解析向】Linux Shell 核心功能拆解:环境变量不生效原因 + $?/echo/alias 底层逻辑
  • UV紫外卤素灯太阳光模拟器的原理
  • RAG简单构建(ollama+uv+deepseek)
  • 告别冰冷AI音!B站开源IndexTTS2模型,零样本克隆+情感解耦,玩法超多!
  • pytorch中.pt和.pth文件区别