Http

在 HTTP2 下,新的 TCP 連接多久發起一次?

  • January 31, 2016

我知道 HTTP2 旨在將所有內容保持在單個 TCP 連接下,我想知道 TCP 連接多久會被斷開。

例如,如果我訪問 youtube,進行一些瀏覽,離開站點,然後返回,我會重新使用相同的 HTTPS 連接(就 TCP 4 元組而言,不是會話),還是使用不同的連接?

其中很多可能是特定於應用程序的,取決於瀏覽器如何實現它,但它是否在標準中的任何地方指定?

規範的相關第 9 節中只有很少的指南:

  • 從瀏覽器到同一伺服器不應有多個連接
  • 不應關閉連接“直到確定不需要與伺服器進行進一步通信”,即當選項卡關閉並且沒有其他選項卡與伺服器通信時
  • 伺服器可以隨時關閉空閒連接,但鼓勵伺服器盡可能長時間地保持連接打開。

例如,如果我訪問 YouTube,進行一些瀏覽,離開站點,然後返回,我會重新使用相同的 HTTPS 連接(就 TCP 4 元組而言,不是會話),還是使用不同的連接?

在這種情況下,使用新連接的可能性很高,至少除非另一個選項卡嵌入了來自 YouTube 的一些影片。但是由於客戶端的資源通常比伺服器上的資源便宜(可能除了手機),因此伺服器可能會第一個關閉空閒連接以節省資源。

引用自:https://serverfault.com/questions/752986