Под HTTP2, как часто инициируются новые соединения TCP?

15

Я понимаю, что HTTP2 стремится держать все под одним TCP-соединением, и мне было интересно, как часто TCP-соединения будут разрываться.

Например, если я зайду на youtube, зайду на сайт, уйду с сайта и вернусь, буду ли я повторно использовать то же соединение HTTPS (в терминах TCP 4-tuple, NOT session) или другое?

Многое из этого, вероятно, зависит от приложения и зависит от того, как его реализует браузер, но указано ли оно где-нибудь в стандарте?

fruglemonkey
источник

Ответы:

18

В соответствующем разделе 9 спецификации есть только несколько рекомендаций :

  • Не должно быть нескольких подключений из браузера к одному серверу
  • Соединения не следует закрывать «до тех пор, пока не будет определено, что дальнейшая связь с сервером не требуется», т. Е. Когда вкладка закрыта и никакие другие вкладки не имеют связи с сервером
  • Сервер может закрыть незанятые соединения в любое время, но серверам рекомендуется держать соединения открытыми как можно дольше.

Например, если я захожу на YouTube, выполняю какой-то просмотр, покидаю сайт и возвращаюсь, буду ли я повторно использовать то же соединение HTTPS (с точки зрения TCP 4-tuple, NOT session) или другое?

В этом случае высока вероятность того, что будет использовано новое соединение, по крайней мере, если на другой вкладке не будет вставлено видео с YouTube. Но поскольку ресурсы на клиенте обычно дешевле, чем на сервере (за исключением, может быть, мобильных телефонов), возможно, именно сервер первым закроет свободное соединение, чтобы сэкономить ресурсы.

Штеффен Ульрих
источник