logo

Исправляем предупреждение "Specify a Vary: Accept-Encoding Header"

Разместил , . Последнее изменение: 2018-04-16. / Нет комментариев

Исправляем предупреждение "Specify a Vary: Accept-Encoding Header"

  1. Исправляем Vary: Accept-Encoding.
  2. Vary: Accept-Encoding в Apache.
  3. Vary: Accept-Encoding в NGINX

Используя сервисы определения скорости сайта: Pingdom, GTmetrix или Google Pagespeed Insights вы можете увидите не совсем понятное предупреждение "Specify a Vary: Accept-Encoding Header". Vary: Accept-Encoding - это HTTP заголовок, который объявляет браузеру какое кодирование контента (обычно алгоритм сжатия) используется на сервере. Если браузер понимает такой способ кодирования, то происходит передача сжатой информации, если нет то не сжатой. Именно с отсутствием этого заголовка связанно предупреждение.

Даже если и клиент, и сервер поддерживают одни и те же алгоритмы сжатия, сервер может не сжимать контент. Два случая которые могут привести к этому:

  1. Отправляемые данные уже сжаты, а второе сжатие не приведет к уменьшению передаваемых данных. Это может происходить с некоторыми форматами изображений;
  2. Сервер перегружен и не может позволить себе вычислительные издержки, вызванные сжатия. К примеру, корпорация Майкрософт рекомендует не сжимать данные, если сервер использует более 80% вычислительной мощности.

Исправляем "Specify a Vary: Accept-Encoding Header"

Важно отметить, что вы можете добавить этот заголовок только для запросов, которые находятся на вашем сервере. Если у вас используются сторонние запросы, и вы видите, что эта ошибка связана с ними, то вы ничего не сможете сделать, так как у вас нет контроля над чужим сервером. Хотя, не стесняйтесь поделиться этой статьей с ними 

Как указать заголовок Vary: Accept-Encoding в Apache

Чтобы добавить этого заголовок в Apache, добавьте следующий код в файл .htaccess через FTP или онлайн-файловый менеджер. Этот файл можно найти в корневой папке сервера.

Важно! Редактирование .htaccess может сломать ваш сайт. Если вы делаете это впервые, то рекомендую для начала почитать подробнее про этот файл или связаться со службой поддержки хостинга.

<IfModule mod_headers.c>
  <FilesMatch ".(js|css|xml|gz|html)$">
    Header append Vary: Accept-Encoding
  </FilesMatch>
</IfModule>
Как указать заголовок Vary: Accept-Encoding в NGINX

Чтобы добавить заголовок в NGINX, добавьте следующий код в файл конфигурации. Все конфигурационные файлы NGINX находятся в каталоге /etc/nginx/. Основным конфигурационным файлом является /etc/nginx/nginx.conf.

sudo nano /etc/nginx/nginx.conf

В открывшемся файле ищем рубрику Compressin. Я предполагаю что у вас уже настроено и включено gzip сжатие. В этом случаи добавьте такую строку:

gzip_vary on

Затем проверьте правильность конфигураций и перезагрузите NGINX:

sudo service nginx configtest
sudo service nginx restart

gzip_vary on

Если у вас нет доступа к серверу, то обратитесь в службу поддержки хостинга. На этом у меня все, оставляйте свои комментарии.

Оставить комментарий

* Возможна анонимная отправка комментария.

Согласен с политикой конфиденциальности *