2024 年中 curl 中的 HTTP/3

主要观点:

  • 介绍 curl 中 HTTP/3 支持的现状,包括支持的四种替代方案、未使用 HTTP/3 的原因、所需的 HTTP/3 后端组件等。
  • 比较不同 HTTP/3 后端在 curl 中的性能,如 ngtcp2 + nghttp3 表现较好,OpenSSL QUIC 性能相对较差。
  • 强调 HTTP/3 在 CPU 受限情况下传输性能较慢,但握手通常更快。
  • 提及 HTTP/3 的部署情况,约 28 - 30%的网络流量为 HTTP/3 ,但仍有部分浏览器流量未使用。

关键信息:

  • curl 支持四种 HTTP/3 解决方案,通过不同途径启用。
  • 构建 curl 自身时使用合适的第三方库可启用 HTTP/3 ,curl for windows 二进制文件也支持。
  • HTTP/3 需 TLS 1.3 支持、QUIC 协议库和 HTTP/3 协议库三个组件。
  • ngtcp2 + nghttp3 是推荐的解决方案,OpenSSL QUIC 存在 API 问题导致性能较慢。
  • HTTP/3 在 CPU 受限下传输慢但握手快,不同 HTTP 版本在不同情况下的性能表现各异。
  • w3techs 等数据显示约 28 - 30%的网络流量为 HTTP/3 。

重要细节:

  • 不同 HTTP/3 后端在 curl 中的具体情况,如 quiche 用 BoringSSL ,msh3 情况及 nghttp3 可使用多种 TLS 库。
  • OpenSSL QUIC 在 API 功能上的缺失及对性能的影响。
  • 不同测试中 HTTP/3 与其他版本在握手和吞吐量性能上的对比情况。
  • HTTP/3 部署中各大玩家和 CDN 已运行 HTTP/3 但仍有部分浏览器流量未使用的现象。
  • HTTPS 堆栈的工作原理图示。
阅读 26
0 条评论