HTTP/2 延迟

· 功能

在之前的文章中,我展示了使用单个连接时 HTTP/2 与 HTTP/1 性能的对比(参见 HTTP/2 与 HTTP/1 性能对比)。本文将在引入延迟的情况下,对比 HTTP/2 与 HTTP/1,展示延迟对 HTTP 协议请求的影响。

客户端发起请求时会存在延迟,延迟大小取决于网络状况(流量、服务器距离等)。延迟对 HTTP 1.1 协议影响很大,因为发送一批请求时,必须先发送请求、等待服务器响应、再发送下一个请求,依此类推。当然您可以使用多个连接,但这需要服务器消耗更多资源,且扩展性不佳。

HTTP/2 协议使用单个连接发起所有请求,因此延迟影响更小。您可以同时发送多个请求而无需等待处理完毕,整个过程速度更快。

HTTP/2 延迟测试

我使用免费的 HTTP/2 Golang 测试服务器来展示延迟对 HTTP/2 与 HTTP/1 的影响。

使用 HTTP/2 协议时,只需将所有请求发送到服务器,并异步处理响应。整个过程非常快,耗时不到 1 秒。

而 HTTP/1 协议则逐个发送请求,每发送下一个请求前必须等待服务器的响应,因此处理速度较慢。

您可以从以下链接下载已编译的 Windows 版 sgcWebSockets 演示示例,直接测试不同选项并对比两种协议的性能。