发布于 2026-01-06 0 阅读
0

HTTP/2 真的值得吗?

HTTP/2 真的值得吗?

简而言之:是的,但是……

背景

自 1991 年 HTTP 0.9 版本发布以来,HTTP 一直是构建网络的基础协议。它几乎是所有网络通信设备赖以生存的骨干技术。24 年来,HTTP 基本保持不变。但时代在进步,技术也在进步。2015 年,HTTP2 正式发布。加密作为一项强制性技术,带来了更高的安全性;多路复用技术提高了资源请求的响应速度;推送功能使得服务器可以在客户端请求之前就提供资源。所有这些以及更多改进,共同造就了 HTTP 协议令人瞩目的迭代版本。

配置

我使用一个非常基础的 LEMP 架构搭建了一个基本的 Web 服务器,然后以每秒 10 个请求的速度连续 5 分钟对其进行测试。这为特定硬件配置的性能提供了一个基准。之后,我配置了 SSL 证书(HTTP/2 的必要条件)。随后,我对 Nginx 配置进行了一些小的修改,并用相同的负载对同一台服务器进行了测试。结果实现了 HTTP 1.1 和 HTTP/2 之间的直接对比。代码仓库已上传至 GitHub,欢迎大家进行评审

可怜的小服务器,每秒 10 个用户,持续 5 分钟。

黄金三镖客

优点

性能显著提升。通过多路复用,可以并行响应多个图像,而不是串行响应。此外,平均响应率似乎降低了约 10%。

回复更多,速度更快。虽然没有我想象的那么多,但仍然有所改进。

缺点

这其实不算坏事,但HTTP/2需要SSL证书及其相关配置。几年前,SSL证书价格昂贵。不过,由于Let's Encrypt的出现,这已不再是问题。我不确定是否会在大规模生产环境中使用Let's Encrypt,但它确实能满足需求。配置需要对Linux操作和Nginx配置有所了解。

哦,你看。结果处理更流畅,响应速度更快。

丑陋的

性能提升不如预期。主要原因在于 SSL 的处理。验证和处理流量加密确实需要占用 CPU 资源。如果想更进一步,可以将 SSL 处理卸载到负载均衡器,这样服务器就只需处理请求本身。

仅HTTP:超过100个资源失败。HTTP/2失败次数低于100。不错。

其他资源

结论

总而言之,HTTP/2 能够缩短响应时间、强制加密,而且启用起来也并不难。结合更高级的功能(例如推送)和缓存系统,HTTP/2 对原本就处于边缘地位的互联网技术来说,无疑是一项巨大的进步。

部分图片来自 https://chadhagen.com/。请大家多多支持他们,Chad 的作品非常棒。)

文章来源:https://dev.to/david_j_eddy/is-http2-really-worth-it-1m2e