Оптимизация контента
Сегментация и сжатие контента
Заголовок раздела «Сегментация и сжатие контента»Сервис CDN поддерживает опции для оптимизации доставки контента:
- сжатие GZip в CDN (доступно только при включенном кешировании);
- оптимизация доставки больших файлов (сегментация или слайсинг);
- сжатие на источнике.
Применение опций уменьшит исходящий трафик с CDN-серверов, что сэкономит ваши средства. Вы можете настроить опции как при создании, так и при редактировании ресурса.
Сжатие GZip в CDN
Заголовок раздела «Сжатие GZip в CDN»Контент с CDN-серверов может передаваться клиентам в сжатом формате GZip. Степень сжатия варьируется от 70 до 90 процентов и зависит от формата исходного файла. Уровень сжатия — 5. Сжатие происходит непосредственно на CDN-серверах. Минимальный размер файла для сжатия — 128 байт.
Сжимаются файлы следующих MIME-типов (значение HTTP-заголовка Content-Type, получаемого от источника):
application/javascript;application/json;application/x-javascript;application/xml;application/xml+rss;image/avif;image/svg+xml;text/css;text/javascript;text/plain;text/xml.
Если вы не установили сжатие GZip при создании ресурса, то очистите кеш CDN, затем активируйте сжатие при редактировании ресурса.
Оптимизация доставки больших файлов
Заголовок раздела «Оптимизация доставки больших файлов»Оптимизация доставки больших файлов реализована в сервисе CDN с помощью механизма сегментирования: файлы загружаются на CDN-серверы сегментами по 10 Мбайт с их последующим сохранением в кеш. Файл будет запрашиваться, кешироваться и передаваться клиенту в несколько потоков по мере необходимости. Если включено кеширование в CDN, перед отправкой клиенту разбитый на сегменты файл будет собран в одно целое.
Как работает оптимизация доставки файлов на примере:
- Потребитель запрашивает 8 Кбайт файла
Хразмером 100 Мбайт:
Range: bytes=123537047–123545047 - CDN-сервер запросит с источника 10 Мбайт файла
Х:
Range: bytes=115343360–125829119 - Если включено кеширование, 10 Мбайт будет закешировано на CDN-сервере.
- Потребитель получает запрашиваемый диапазон файла
Х:
123537047–123545047
Сжатие на источнике
Заголовок раздела «Сжатие на источнике»При сжатии на источнике CDN-серверы забирают уже сжатый контент. В отличие от опции выше, непосредственно сжатие происходит на источнике, а не на CDN-сервере.
Особенности и ограничения:
- Файлы должны сжиматься на сервере-источнике по методу GZip.
- Если браузер потребителя не поддерживает сжатие (не приходит HTTP-заголовок
Accept-Encoding: gzip), CDN-серверы не будут разжимать контент. - Если на источнике настроен HTTP-заголовок
Vary: Accept-Encoding, в кеше CDN-серверов будет сохранено две версии файла — со сжатием и без него; такой вариант хранения позволит избежать некорректного отображения контента у потребителя.
Процесс настройки опции:
- На источнике добавьте HTTP-заголовки:
Vary: Accept-Encoding,Content-Encoding.
- CDN-серверы проверяют HTTP-заголовок
Accept-Encodingв запросах клиентов на возможность обработки сжатого контента:gzip,deflate,br.
- Если у потребителя поддерживается сжатие, CDN-сервер запросит с источника сжатую версию файла, в противном случае сервер передаст потребителю несжатый файл.
Поддержка WebSocket-соединений
Заголовок раздела «Поддержка WebSocket-соединений»Сервис CDN поддерживает протокол WebSocket: в отличие от HTTP этот протокол устанавливает непрерывное соединение между клиентом и сервером. WebSocket может использоваться при обмене данными в реальном времени, например, в онлайн-чатах технической поддержки.
Вы можете настроить WebSocket как при создании, так и при редактировании ресурса.
Rewrite-правила
Заголовок раздела «Rewrite-правила»Сервис CDN поддерживает перенаправление запросов от CDN-ресурса к источнику с помощью rewrite-правил.
Принцип действия: вы перенаправляете запросы от CDN-ресурса к источнику, изменив URI запроса. С помощью регулярного выражения находится целевой массив в файловой системе источника и указываются нужные правила формирования пути для этих запросов. Перенаправление может применяться, например, при изменении структуры файлов в бакете, если он используется в качестве источника.
Rewrite-правила нельзя задавать для локаций.
Вы можете настроить перенаправление запросов как при создании, так и при редактировании ресурса.