Origin Range Requests меняет кеширование частей больших файлов
Cloudflare перестроила загрузку диапазонов в Pingora. Новый механизм доступен через Cache Rules и не требует выбирать размер диапазона.

Несколько мегабайт вместо целого фильма
Видео при перемотке и загрузчик после обрыва часто запрашивают только часть файла. В HTTP это запрос Range, а ответ с нужными байтами использует статус 206 и Content-Range. Cloudflare описала проблему прежнего кеширования: маленький пользовательский запрос мог вызывать значительно большую загрузку с исходного сервера и дополнительную передачу между центрами данных. Настройка фиксированного диапазона заставляла выбирать между множеством мелких обращений и лишним объёмом скачивания. Новый механизм Origin Range Requests переносит координацию в кеширующую систему Pingora. Пользовательский запрос сохраняет свой смысл; меняется способ, которым CDN получает недостающие байты.
Кеш опирается на собственные блоки
Pingora уже хранит файлы на диске блоками. Для запроса диапазона система определяет, какие блоки есть в кеше, и получает отсутствующие с выравниванием по внутренним границам. Клиенту при этом возвращается только запрошенный участок. Такой подход позволяет согласовывать параллельные загрузки и не заставлять администратора подбирать один размер для разных видео, архивов и сценариев. Cloudflare сообщает о снижении p99 времени до первого байта примерно вдвое для R2 и о последующем сокращении трафика между уровнями кеша. Это измерения указанной инфраструктуры и нагрузки. Они не означают, что любой файл любого клиента станет загружаться ровно вдвое быстрее после включения настройки.
Граница между правилом кеша и протоколом
Документация предоставляет переключатель через Cache Rules; в анонсе указана доступность на всех планах. Правило определяет применимость функции к выбранным запросам, а другие параметры кеширования продолжают действовать. Протокол HTTP допускает, что сервер не поддерживает диапазон; недоступный диапазон имеет отдельную семантику ошибки. CDN не может корректно сшить разные версии файла только по совпадению URL. Поэтому валидаторы представления, корректный размер и поведение источника остаются значимыми. Для меняющихся объектов важно, чтобы части относились к одной версии. История частичной загрузки отличается от простого кеширования полного ответа, даже если конечный пользователь видит знакомую кнопку скачивания.
Что покажет проверка на реальном файле
Включение стоит оценивать по нескольким уровням: ответ клиенту, объём чтения источника и трафик между уровнями CDN. Быстрый первый байт ещё не описывает общее время скачивания, а снижение переданных байтов не обязательно уменьшает число обращений. При воспроизведении видео важны короткая перемотка, последовательный просмотр и прекращение просмотра до завершения фоновой загрузки. Для загрузчиков — продолжение после обрыва и повторные запросы соседних участков. Это разные шаблоны доступа к одному объекту. Cache Rules позволяют ограничить область изменения, но не устраняют необходимость проверить корректность заголовков и содержимого. Релиз от 23 октября убирает ручной подбор размера диапазона; требования HTTP к частичному ответу и согласованности данных сохраняются независимо от внутренней архитектуры кеша.


