在 HTTP2 下,新的 TCP 连接多久发起一次?

fru*_*key 15 http https tcp

我知道 HTTP2 旨在将所有内容保持在单个 TCP 连接下,我想知道 TCP 连接多久会被断开。

例如,如果我访问 youtube,进行一些浏览,离开站点,然后返回,我会重新使用相同的 HTTPS 连接(就 TCP 4 元组而言,不是会话),还是不同的连接?

其中很多可能是特定于应用程序的,取决于浏览器如何实现它,但它是否在标准中的任何地方指定?

Ste*_*ich 18

规范的相关第 9 节中只有很少的指导方针:

  • 从浏览器到同一服务器不应有多个连接
  • Connections should not be closed "until it is determined that no further communication with a server is necessary", ie when the tab is closed and no other tabs have communication to the server
  • 服务器可以随时关闭空闲连接,但鼓励服务器尽可能长时间保持连接打开。

例如,如果我访问 YouTube,进行一些浏览,离开该站点,然后返回,我会重新使用相同的 HTTPS 连接(就 TCP 4 元组而言,不是会话),还是不同的连接?

在这种情况下,使用新连接的可能性很高,至少除非另一个标签嵌入了来自 YouTube 的一些视频。但是由于客户端的资源通常比服务器上的资源便宜(手机除外),因此服务器可能会第一个关闭空闲连接以节省资源。