Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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