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%。
缺点
这其实不算坏事,但HTTP/2需要SSL证书及其相关配置。几年前,SSL证书价格昂贵。不过,由于Let's Encrypt的出现,这已不再是问题。我不确定是否会在大规模生产环境中使用Let's Encrypt,但它确实能满足需求。配置需要对Linux操作和Nginx配置有所了解。
丑陋的
性能提升不如预期。主要原因在于 SSL 的处理。验证和处理流量加密确实需要占用 CPU 资源。如果想更进一步,可以将 SSL 处理卸载到负载均衡器,这样服务器就只需处理请求本身。
其他资源
- Google Web Fundamentals HTTP/2 简介
- https://en.wikipedia.org/wiki/HTTP/2
- https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-with-http-2-support-on-ubuntu-18-04
- https://http2.akamai.com/
结论
总而言之,HTTP/2 能够缩短响应时间、强制加密,而且启用起来也并不难。结合更高级的功能(例如推送)和缓存系统,HTTP/2 对原本就处于边缘地位的互联网技术来说,无疑是一项巨大的进步。
部分图片来自 https://chadhagen.com/。请大家多多支持他们,Chad 的作品非常棒。)
文章来源:https://dev.to/david_j_eddy/is-http2-really-worth-it-1m2e

