HTTP 协议演进及特性对比整理

HTTP/1.1

优点

  • 简单易用

    • 报文结构清晰:Header(文本键值对) + Body(JSON等)
    • 学习成本低,概念直观
  • 灵活扩展

    • 支持自定义头字段与 URI 拓展
    • 适配多种应用场景
  • 兼容性高

    • 早于 1997 年标准化,主流浏览器/客户端均支持

缺点

  • 无状态特性

    • 服务器不记录请求上下文
    • 需依赖 CookieToken 实现身份校验
  • 明文传输风险

    • 数据经中间节点时可能被窃取/篡改
    • 安全凭证(如 Cookie)易遭中间人攻击

对 HTTP/1.0 的改进

特性描述
长连接复用 TCP 连接,减少握手开销(默认启用 Connection: keep-alive
管道传输支持连续发送请求(未解决响应队头阻塞)
Range 请求通过 Range 头实现断点续传,降低带宽消耗

HTTP/2

核心改进

基于二进制分帧,彻底重构传输机制

优点

  • 二进制分帧

    • 报文拆分为 Headers 帧Data 帧
    • 支持流量控制与请求优先级管理
  • 多路复用

    • 同一 TCP 连接并行处理多个请求/响应
    • 彻底解决 响应队头阻塞 问题
  • 头部压缩

    • 使用 HPACK 算法(静态表记录常用请求头部,动态表记录请求重复头部,哈曼夫编码字段值)
    • 显著减少重复请求的header传输开销
  • 服务器推送

    • HTTP2引入的以上特性,使得服务器能够主动向客户端进行低时延的数据推送

缺点

  • TCP 队头阻塞残留

    • 丢包时 TCP 层仍需等待重传,影响所有流
  • 兼容性局限

    • 部分老旧浏览器/中间件尚未支持
  • 资源消耗高

    • HPACK 表需额外内存与 CPU 开销

对 HTTP/1.1 的改进

  • 解决了响应的队头阻塞
  • 实现了服务器主动推送
  • 提高了并发请求及响应性能
  • 减少了请求头部的重复资源浪费

HTTP/3

核心架构

基于 UDP 的 QUIC 协议实现可靠传输,应用层握手与安全协议融合
HTTP3将HTTP2的帧改为了stream里的packet,一个请求(stream)被拆分为了多个packet

优点

  • 彻底无队头阻塞

    • 丢包仅影响单一流(Stream),其他流独立传输
  • 极速连接建立

    • 首次连接 1.5 RTT(集成 TLS 1.3)
    • 会话复用实现 0 RTT 连接
  • 网络迁移友好

    • 基于连接 ID(Connection ID)维护会话状态
    • 支持 IP 变更(如 WiFi 切 5G)无缝切换

缺点

  • UDP 传输风险

    • 部分运营商限制 UDP 流量,可能影响稳定性
  • 性能成本

    • 用户态实现 QUIC 协议栈,CPU/内存消耗较高

对 HTTP/2 的改进

维度HTTP/2HTTP/3
传输层协议TCPUDP + QUIC
队头阻塞解决 HTTP 层,残留 TCP 层全面消除
连接迁移依赖 TCP 四元组基于 Connection ID
建连延迟1 RTT(TLS)+ TCP 三次握手1.5 RTT(含安全握手)
0-RTT 支持有限原生支持
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值