Loading...

Справка CDN.com.tr

Сжатие Brotli и gzip

Edge автоматически сжимает текстовые ответы: Brotli для браузеров, которые его поддерживают, gzip для остальных. Какой метод использует каждый домен, видно в карточке «Сжатие»; подтвердите это с помощью curl.

Сжатие Brotli и gzip

Edge автоматически сжимает текстовые ответы: Brotli для браузеров, которые его поддерживают, gzip для остальных. Какой метод использует каждый домен, видно в карточке «Сжатие»; подтвердите это с помощью curl.

Связанные руководства

Другой заголовок ответа, который стоит смотреть во время тестов, что происходит с изображениями и правила, на которые ссылается карточка.

Во время тестов

Чтение статуса кеша: HIT, MISS, BYPASS, EXPIRED

Заголовок X-Proxy-Cache-MT показывает, пришёл ли ответ из кэша.

Открыть тему
Правила доставки

Настройка поведения кеша через Add Rule

Правила, перечисленные на той же странице; примечание под каждым значением сжатия называет одно из них.

Открыть тему

Путь в панели

  1. Панель управления
  2. Правила доставки
  3. Оптимизация
  4. Сжатие

Предварительные требования

  • Домен, который обслуживается правилом доставки: карточка Сжатие перечисляет домены, которые обслуживают правила аккаунта.
  • curl или инструменты разработчика в браузере для проверки.

Пошаговое руководство

1

Прочитайте карточку «Сжатие»

Карточка показывает сжатие каждого домена по HTTP и по HTTPS.

  • Откройте Правила доставки и перейдите на вкладку Оптимизация.
  • В карточке Сжатие найдите свой домен в столбце Домен.
  • Посмотрите значения в столбцах HTTP и HTTPS и примечание под каждым.

Ожидаемый результат: Домен с настройками по умолчанию показывает Brotli и gzip с примечанием вроде из правила №… или из правила проверки сертификата.

2

Проверьте Brotli и gzip через curl

Запросите текстовый файл размером не меньше 256 байт, например CSS- или JavaScript-файл, один раз с запросом Brotli и один раз — gzip.

  • Отправьте GET-запрос с Accept-Encoding: br и посмотрите заголовки ответа.
  • Повторите его с Accept-Encoding: gzip.

Ожидаемый результат: content-encoding: br в первом ответе и content-encoding: gzip во втором, каждый с vary: Accept-Encoding.

cdnctl equivalent
curl -s -o /dev/null -D - -H 'Accept-Encoding: br' https://www.example.com/assets/app.css | grep -iE '^(content-encoding|vary):'
curl -s -o /dev/null -D - -H 'Accept-Encoding: gzip' https://www.example.com/assets/app.css | grep -iE '^(content-encoding|vary):'
3

Сравните размеры

Размер загрузки показывает, сколько сжатие экономит на ваших собственных файлах.

  • Скачайте файл один раз с Accept-Encoding: br и один раз без заголовка Accept-Encoding.
  • Сравните два числа байтов.

Ожидаемый результат: Два числа байтов: сначала сжатый размер, затем несжатый.

cdnctl equivalent
curl -s -o /dev/null -w '%{size_download}\n' -H 'Accept-Encoding: br' https://www.example.com/assets/app.css
curl -s -o /dev/null -w '%{size_download}\n' https://www.example.com/assets/app.css

Проверка

  • curl -s -o /dev/null -D - -H 'Accept-Encoding: br' https://www.example.com/assets/app.css | grep -iE '^(content-encoding|vary):' → content-encoding: br, vary: Accept-Encoding
  • curl -s -o /dev/null -D - -H 'Accept-Encoding: gzip' https://www.example.com/assets/app.css | grep -iE '^(content-encoding|vary):' → content-encoding: gzip, vary: Accept-Encoding
  • curl -s -o /dev/null -w '%{size_download}\n' -H 'Accept-Encoding: br' https://www.example.com/assets/app.css → сжатый размер; та же команда без заголовка Accept-Encoding → несжатый размер

Сценарии использования

Вы перевели сайт за CDN и хотите убедиться, что его HTML, CSS, JavaScript и JSON доходят до посетителей сжатыми, без настройки сжатия на вашем origin.

Краткий порядок действий

  1. Откройте Правила доставки аккаунта и перейдите на вкладку Оптимизация.
  2. В карточке Сжатие с пометкой Автоматически найдите строку вашего домена.
  3. Посмотрите столбцы HTTP и HTTPS: Brotli и gzip означает, что для этого протокола включены оба метода, а примечание под значением называет правило, из которого оно взято. Только gzip, Только Brotli или Выключено означает, что самое старое правило домена было сохранено с этой настройкой; примечание называет это правило.
  4. Запросите CSS- или JavaScript-файл через curl и посмотрите заголовок content-encoding.

Проверки

  • Edge сжимает по Content-Type ответа: HTML, CSS, JavaScript, JSON (application/json, application/ld+json, application/manifest+json), XML (включая ленты RSS и Atom), обычный текст, SVG, иконки ICO, WebAssembly и шрифты TTF, OTF и EOT. Остальные типы контента уходят как есть.
  • JPEG, PNG, WebP и другие форматы изображений, кроме SVG и ICO, шрифты WOFF и WOFF2, видео и zip-архивы — уже сжатые форматы и уходят как есть.
  • Ответы известного размера меньше 256 байт уходят без сжатия.
  • Сжатие применяется к ответам 200, 403 и 404.
  • Сжатые ответы содержат Vary: Accept-Encoding, поэтому промежуточные кэши хранят сжатую и несжатую версии раздельно.
  • Браузеры запрашивают Brotli только по HTTPS; по обычному HTTP тот же браузер получает gzip.
  • Сжатием занимается edge, поэтому вашему origin делать это не нужно. Ответ, который приходит уже сжатым (у него есть заголовок Content-Encoding), повторно не сжимается.
  • Когда вы редактируете правило, для каждого его домена, сжатие которого задаётся более старым правилом, появляется примечание с меткой Для каждого домена, которое называет это правило.
  • Сжатие задаётся для домена его самым старым правилом, а не для каждого правила: значение в карточке, включая Только gzip, Только Brotli или Выключено, действует для всех правил домена по этому протоколу, и изменить его в карточке нельзя.

Часто задаваемые вопросы

Нужно ли включать сжатие?

Нет. Сжатие автоматическое: правила доставки создаются с Brotli и gzip, а карточка Сжатие помечена как Автоматически.

Почему моя проверка не показывает заголовок content-encoding?

Проверьте пять вещей: карточка Сжатие показывает Brotli и gzip для этого домена и протокола, запрос просит сжатие (curl не отправляет заголовок Accept-Encoding, если вы его не добавите), файл относится к сжимаемым типам, его размер не меньше 256 байт, а статус — 200, 403 или 404. Выполните команды проверки ниже в точности так, как они написаны.

Brotli или gzip: что получит посетитель?

Brotli — браузеры, которые его поддерживают, gzip — остальные. Edge читает заголовок Accept-Encoding, который отправляет браузер, а браузеры запрашивают Brotli только по HTTPS.

Что означает «Не обслуживается» в карточке?

Ни одно правило доставки пока не обслуживает этот домен по этому протоколу. Как только правило начнёт обслуживать домен по HTTP или HTTPS, карточка покажет там его сжатие.