Jak często w ramach HTTP2 inicjowane są nowe połączenia TCP?

15

Rozumiem, że HTTP2 ma na celu utrzymanie wszystkiego pod jednym połączeniem TCP i zastanawiałem się, jak często połączenia TCP były zrywane.

Na przykład, jeśli odwiedzę youtube, przeglądam, opuszczam witrynę i wracam, czy będę ponownie używać tego samego połączenia HTTPS (pod względem TCP 4-krotek, sesji NOT), czy innego?

Wiele z nich jest prawdopodobnie specyficznych dla aplikacji i zależy od tego, jak przeglądarka to implementuje, ale czy jest to określone gdziekolwiek w standardzie?

fruglemonkey
źródło

Odpowiedzi:

18

W odpowiedniej sekcji 9 specyfikacji znajduje się tylko kilka wytycznych :

  • Nie powinno być wielu połączeń z przeglądarki do tego samego serwera
  • Połączenia nie powinny być zamykane „do momentu ustalenia, że ​​dalsza komunikacja z serwerem nie jest konieczna”, tj. Gdy karta jest zamknięta i żadne inne karty nie mają komunikacji z serwerem
  • Serwer może zamykać bezczynne połączenia w dowolnym momencie, ale zachęca się serwery do utrzymywania połączeń otwartych tak długo, jak to możliwe.

Na przykład, jeśli odwiedzę YouTube, przeglądam, opuszczam witrynę i wracam, czy będę ponownie używać tego samego połączenia HTTPS (pod względem TCP 4-krotek, sesji NOT), czy innego?

W takim przypadku istnieje duże prawdopodobieństwo, że zostanie użyte nowe połączenie, przynajmniej jeśli na innej karcie nie ma osadzonego wideo z YouTube. Ale ponieważ zasoby u klienta są zwykle tańsze niż na serwerze (może z wyjątkiem telefonów komórkowych), być może serwer jako pierwszy zamknie bezczynne połączenie w celu zaoszczędzenia zasobów.

Steffen Ullrich
źródło