Термин
HTTP/2
Ревизия HTTP 2015 года (RFC 9113, консолидация – июнь 2022) с бинарным фреймингом, сжатием заголовков и мультиплексированием потоков поверх одного TCP-соединения. Транспорт, сделавший low-latency HLS практичным.
HTTP/2 заменил модель «один запрос – одно соединение», использовавшуюся в HTTP/1.1, на бинарный мультиплексированный фрейминг поверх одного TLS-соединения. Плеер может отправить десятки запросов на сегменты через один TCP-сокет, а сервер отвечает на них в произвольном порядке. HPACK сжимает повторяющиеся заголовки до нескольких байт. Снижение накладных расходов и устранение проблемы head-of-line blocking стали причиной, по которой Apple сначала внедрил HTTP/2 push (позже отменив его), а затем перешёл к использованию HTTP/2 с chunked transfer для LL-HLS.
Для ABR-стриминга важны такие особенности HTTP/2: мультиплексирование потоков (сегмент N+1 начинает загружаться до завершения сегмента N без дополнительного TCP-рукопожатия), server push (применялся в LL-HLS, позже заменён на preload hints), передача по частям незавершённых сегментов (ключевая особенность LL-HLS) и приоритизация потоков (учитывается современными браузерами, игнорируется старыми плеерами). HTTP/2 также исключил поддержку незашифрованного трафика, и все стриминговые запросы теперь идут по TLS – это удобно для DRM и signed-URL, но немного усложняет отладку кэша.
Слабое место HTTP/2 – то же, что и у TCP: блокировка из-за первого пакета (head-of-line blocking). Потеря пакета в нижнем TCP-канале заставляет каждый мультиплексированный поток ждать его повторной передачи. На нестабильной сотовой связи это становится главной проблемой HTTP/2 – именно её решает HTTP/3.
Считаете параметры для своего продукта?
Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.