Термин

Byte-range request

Короткое определение

HTTP-запрос, запрашивающий конкретный диапазон байтов ресурса через заголовок `Range:` (RFC 9110, июнь 2022). Используется в HLS для забора суб-кусков CMAF-файла без отдельного URL под каждый.

Byte-range-запрос выглядит как `GET /segment.m4s` с заголовком `Range: bytes=0-200000` – сервера просят отдать только первые 200001 байт. Сервер отвечает HTTP 206 Partial Content и запрошенными байтами. CDN кеширует файл один раз и отвечает на byte-range-запросы из кеша, не обращаясь к origin. Механизм идёт ещё с HTTP/1.1 (RFC 2616, 1999) и поддержан повсеместно.

В стриминге byte-range-fetching – это обход для фрагментации CMAF-сегмента без взрыва URL-пространства. 6-секундный сегмент может состоять из 30 CMAF-чанков по 200 мс; вместо 30 отдельных URL (и 30 cache-записей) packager публикует один URL, а HLS `EXT-X-PART` ссылается на байтовые диапазоны внутри него. CDN кеширует один файл; плеер забирает нужные partial-ы.

Второе крупное применение – DASH-профиль SegmentBase, где весь VOD-ассет лежит в одном файле, а плеер byte-range-fetch-ит сегменты, вычисляя смещения из SIDX (segment index). Это упрощает структуру каталога (один MP4 на rendition вместо тысяч `.m4s`-файлов) ценой чуть более сложной логики плеера. CDN-ы обслуживают byte-range-трафик нативно – современные кеши эффективно обрабатывают даже несколько перекрывающихся диапазонов от параллельных клиентов.

Считаете параметры для своего продукта?

Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.