翻译翻译什么 TM 叫 HTTP2

111 阅读1分钟

直接汇报特性太 low 了, 要有逻辑, 有延伸, 有底层知识, 我就选择一个从 HTTP 演进路线的逻辑回答这个问题

  1. HTTP2 是什么

  2. HTTP 0.9

  3. HTTP 1.0

  4. HTTP 1.1

  5. HTTP 2.0

  6. 未来 HTTP 发展

HTTP2 是对历史超文本传输协议的几点不足而改进的解决方案.

HTTP/0.9 最初被设计为仅仅用来获取 HTML 文档的协议, 非常简单且局限.

HTTP/1.0 增加了版本号, HTTP 首部, 一些额外的方法, 多媒体数据处理, 但不能不支持长连接和缓存等特性

HTTP /1.1 中引入了 keep-alive, 管线化技术, 缓存控制机制, 内容协商机制, Host 字段

而 HTTP/2.0 将 HTTP /1.1 进一步优化, 把解决方案下方到传输层,

  1. 带来了二进制分帧传输代替文本传输
  2. 而这种传输方式又带来了多路复用的, 可以在一个连接中传递任意数据块, 解决了 keep-alive 中 队头阻塞的问题
  3. 以及 header 压缩 原理是采用 HPACK 算法, 服务端和客户端维护一个字典, 只传递索引, 以及采用哈夫曼编码, HTTP/2还彻底解决了
  4. 请求 - 应答模式,实现了服务端推送

未来还要解决 TCP 和 TCP+TLS 建立连接的延时的问题, 于是 采用了 基于 UDP 的 QUIC

素材

QUIC 它的流控功能在用户空间而不在内核空间

0RTT 0RTT 是指双方通信的第一个数据包就可以携带有效的业务数据。

zhuanlan.zhihu.com/p/142794794