与后端服务器重用 http 连接 - Web fetch API

dav*_*ler 3 javascript browser http fetch http2

我在我的网站上托管example.com我的 graphQL 后端,graphql.example.com该后端通过 CORS 提供 JSON。据我了解,每个请求都window.fetch('https://graphql.example.com/', ...)需要创建一个新连接。我知道浏览器能够为example.com通过 http2 建立的多个资产重用相同的连接。例如,如果我的网页有 s <img>example.com/a.jpgexample.com/b.jpg只需支付一次设置连接的费用。

无论如何,是否可以以类似的方式重用连接

  • (a) 与window.fetch()
  • (b) 到另一个需要 CORS 的域

dav*_*ler 5

我在这件事上错了。所有通过graphql.example.comCORS 的获取请求都可以重用相同的 tcp 连接。您可以通过运行此示例并在 chrome 开发工具中检查连接 ID 来检查这一点在此输入图像描述

然而,CORS 请求将使用与同一服务器的非 CORS 请求不同的连接。

例如,假设您通过图像标签请求,则将通过一个连接在没有 CORS 的情况下为它们提供服务example.com/a.jpgexample.com/b.jpg

所有 CORS 请求都fetch('graphql.example.com')将通过不同的连接提供服务。