Http
在 HTTP2 下,新的 TCP 連接多久發起一次?
我知道 HTTP2 旨在將所有內容保持在單個 TCP 連接下,我想知道 TCP 連接多久會被斷開。
例如,如果我訪問 youtube,進行一些瀏覽,離開站點,然後返回,我會重新使用相同的 HTTPS 連接(就 TCP 4 元組而言,不是會話),還是使用不同的連接?
其中很多可能是特定於應用程序的,取決於瀏覽器如何實現它,但它是否在標準中的任何地方指定?
規範的相關第 9 節中只有很少的指南:
- 從瀏覽器到同一伺服器不應有多個連接
- 不應關閉連接“直到確定不需要與伺服器進行進一步通信”,即當選項卡關閉並且沒有其他選項卡與伺服器通信時
- 伺服器可以隨時關閉空閒連接,但鼓勵伺服器盡可能長時間地保持連接打開。
例如,如果我訪問 YouTube,進行一些瀏覽,離開站點,然後返回,我會重新使用相同的 HTTPS 連接(就 TCP 4 元組而言,不是會話),還是使用不同的連接?
在這種情況下,使用新連接的可能性很高,至少除非另一個選項卡嵌入了來自 YouTube 的一些影片。但是由於客戶端的資源通常比伺服器上的資源便宜(可能除了手機),因此伺服器可能會第一個關閉空閒連接以節省資源。