约 1 分钟
HTTP协议版本介绍

HTTP/0.9 - 1991

  • 请求只有一行,只有GET方法
    • GET /index.html
  • 响应只包含body
  • 仅支持HTML文本

HTTP/1.0 - 1996

  • 支持更多类型(如图片、视频等)
  • 更多方法:POST, HEAD
  • 加入了请求/响应头
  • 状态码
  • ASCII编码方式
  • 一次事务仅完成一个请求的响应(然后丢弃连接)

HTTP/1.1 - 1999

  • PUT, PATCH, OPTIONS, DELETE
  • 头部必须包含“Host”
  • 持久连接(keep-alive)的引入
  • Pipelining
  • 字符集、语言、客户端cookies等

HTTP/2.0 (HTTP-NG) - 2015

  • 二进制编码
  • 多线
  • HPACK
  • 服务器推送
    • 服务器可将客户端可能需要的资源提前发送
  • 请求优先级
  • TLS
    • 非强制要求,但是事实上几乎强制要求
    • TLS版本1.2以上

HTTP/3.0

  • 采用基于UDP的QUIC协议
    • QUIC理想情况下是希望直接建立在IP协议上,但现实原因使其不得不采用UDP过渡
    • 可以视作TCP/2.0,同样是可靠传输协议
    • 与TLS深度集成(默认的、强制的)
    • 使用Connection ID和帧

参考

  1. Everything you need to know about HTTP
  2. HTTP/3 From A To Z: Core Concepts
  3. HTTP/3: Performance Improvements (Part 2)