3

基准测试:HTTP/3 有多快? - requestmetrics

 2 years ago
source link: https://www.jdon.com/58052
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

基准测试:HTTP/3 有多快?

为了了解 HTTP/3 产生什么样的性能差异,需要一个基准测试设置。

为了更接近实际使用情况,测试设置由三个场景组成 - 一个小站点、一个内容丰富的站点(大量图像和一些 JS)和一个单页面应用程序(在 JS 上很重)。我查看了几个真实世界的站点,并对每个站点的图像和 JS 文件的数量求平均值,然后编写了一些与这些资源数量(和大小)匹配的演示站点。

HTML

  • 小型站点
    • 10 个2kb 到 100kb 的 JS 文件
    • 从 1kb 到 50kb 的10张图像
    • 总有效载荷大小600kb,总共 20 个阻塞资源
  • 内容站点
    • 50 个2kb 到 1mb 的 JS 文件
    • 55张大小从 1kb 到 1mb 的图像。
    • 总有效负载大小10MB,总共 105 个资源(有时在开发工具中查看 cnn.com,您会明白为什么它如此之大)
  • 单页应用程序
    • 从 2kb 到 1mb 的85 个JS 文件
    • 30张大小从 1kb 到 50kb 的图像。
    • 总有效负载大小15MB,总共 115 个资源(有时在开发工具中查看 JIRA)

服务器

Caddy用于提供所有资产和 HTML。

  • 提供所有响应Cache-Control: "no-store"以确保浏览器每次都会重新下载。
  • TLS 1.2 用于 HTTP/1.1 和 HTTP/2
  • TLS 1.3用于 HTTP/3。
  • 为所有 HTTP/3 连接启用了0-RTT

客户端

让浏览器自动连续请求同一页面 20 次,在页面加载后等待 3 秒开始下一个请求。互联网连接的额定速度为 200mbps。数据捕获时,计算机上没有运行其他应用程序。

测试地点

测试是从我在明尼苏达州的计算机到由 Digital Ocean 托管的三个独立数据中心进行的:

  • 美国纽约,相比Http2:

    小型站点快200 毫秒

    内容站点快325 毫秒

    单页应用程序快300 毫秒

  • 伦敦,英国,相比http2:

    小型站点快600 毫秒(与纽约相比,速度提高了3 倍)

    1200ms(以上为内容网站更快的3.5倍与纽约相比的加速)

    单页应用程序快1000 毫秒(与纽约相比,速度提高了3 倍以上)

  • 印度班加罗尔:当涉及更大的地域和更多的网络跃点时,HTTP/3 继续领先。也许更引人注目的是 HTTP/3 的响应时间分组的紧密程度。当数据包传输数千英里时,QUIC 会产生很大的影响。

结论

在任何情况下,HTTP/3 都比HTTP/2更快!

为什么 HTTP/3 这么快?

  • 真正的多路复用

HTTP/3 真正的多路复用特性意味着堆栈中的任何地方都不会发生行头阻塞。当从更远的地方请求资源时,在地理上,数据包丢失的可能性要高得多,并且 TCP 需要重新传输这些数据包。

  • 0-RTT 是游戏规则的改变者

此外,HTTP/3 支持O-RTT QUIC 连接,这降低了与服务器建立安全 TLS 连接所需的往返次数。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK