HTTP/2 client-requested 多文件请求

HTTP/2 client-requested multiple file request

HTTP/2 中是否有任何方法或 header 允许客户端专门请求在来自服务器的单个请求中检索多个资源并与任何支持服务器一起工作 out-of-the-box?或者是在服务器上设计自定义 API 供客户端使用的唯一解决方案吗?

在撰写本文时,我知道 fetch effort and the streams 的努力,但我不知道这两项努力将如何准确地考虑 HTTP/2 协议功能。

Jetty 项目提供了一个 Java HTTP/2 client API

回答你的问题:没有。

但是,根据您的浏览器的智能程度,发出多个 HTTP/2 请求的开销是最小的。一方面,您的 headers 将被压缩,因此在 URI 本身的字节之上(无论如何您都需要发送),每个请求的开销可能约为 60 个字节,可能更少。从那时起,HTTP/2 规范不再要求 HTTP/2 帧在不同的 TCP 数据包(或 SSL 记录)中传输,因此您的浏览器可以自由收集多个 HEADER 帧以启动不同的请求并将它们一起发送......即使您的浏览器不这样做,Nagle 的算法也有可能触发并通过网络将它们一起发送。合规 HTTP/2 服务器应处理 header 帧串联,这些帧甚至不受流量控制。

创建自定义 API 仍然会有一些开销,但我不确定这是否值得。