使用了 HTTP2 协议,但请求仍按顺序进行,与预期不同

使用了 HTTP2 协议,但请求仍按顺序进行,与预期不同

我正在尝试通过从 HTTP11 迁移到 HTTP2 来优化新闻门户网站以及我们 CMS 中每页约 800-1000 个请求的大量请求。我预计 HTTP2 将使我的请求并行(如链接所示),但我的请求似乎仍然相当连续(附图)。我的问题的图片- 与这里不同,我们可以看到完全并行的请求:带有良好 http2 性能示例的问题

服务器是Caddy,但是因为跟node http2静态服务器是一样的,所以觉得别的也没什么用。

答案1

发起者大多数时候require.js都是require.js按顺序执行请求,而不是并行执行。

例如,模块解析的情况如下:require.js需要moduleA,因此对它发出请求;当moduleA到达浏览器并进行解析时,它需要moduleB,因此require.js对 发出请求moduleB;等等。

答案2

尝试使用 Firefox,因为这可能是由于 Chrome 中的这个错误造成的:https://stackoverflow.com/questions/45384243/google-chrome-does-not-do-multiplexing-with-http2/45775288#45775288

您还应该注意,许多实现限制了流的最大数量(例如,Apache 限制每次为 100 个流),因此即使您解决了问题,您也可能不会看到所有 800-1000 个请求同时发生(但应该比您现在看到的要好得多)。

相关内容