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

Google и pingdom.com говорят, что я должен «Указать заголовок Vary: Accept-Encoding»

я не знаю и не понимаю, как это сделать. Может ли кто-нибудь объяснить, что это такое и что он делает?


person jshariar    schedule 20.05.2013    source источник


Ответы (3)


Я получаю почти 100% баллов в https://tools.pingdom.com/ и https://developers.google.com/speed/pagespeed/insights/

Я нашел полезный пост для ускорения веб-сайта WordPress или блога https://www.keycdn.com/blog/speed-up-wordpress/

С некоторыми другими оптимизациями я также использую приведенный ниже код на своем сайте в файле .htaccess (обычно скрытом в основной папке сайта)

Мой сервер - Apache, вы можете проверить в панели управления хостингом (например, панель cPanel / WHM) (если ваш сервер nginx, проверьте сообщение keycdn.com)

(Скопируйте и вставьте приведенный ниже код в файл .htaccess, у меня он работает хорошо)

(Проголосуйте за этот ответ, если он вам подходит)

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 month"
ExpiresByType image/jpeg "access 1 month"
ExpiresByType image/gif "access 1 month"
ExpiresByType image/png "access 1 month"
ExpiresByType image/svg "access 1 month"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType text/javascript "access 1 month"
ExpiresByType application/javascript "access 1 month"
ExpiresByType application/xhtml+xml "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 month"
ExpiresDefault "access 1 month"
</IfModule>

<ifModule mod_headers.c>
  <filesMatch ".(css|jpg|jpeg|png|gif|swf|svg|js|ico)$">
    Header set Cache-Control "max-age=2592000, public"
  </filesMatch>
  <filesMatch ".(x?html?|php)$">
    Header set Cache-Control "private, must-revalidate"
  </filesMatch>
</ifModule>

<IfModule mod_deflate.c>
  # Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/json
  AddOutputFilterByType DEFLATE application/atom+xml
  AddOutputFilterByType DEFLATE application/rdf+xml
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-font-woff
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/truetype
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml
</IfModule>
person proseosoc    schedule 23.06.2016
comment
Это дало мне от C до B (в метрике заголовка страницы) ... теперь получаю сообщение об использовании файлов cookie (хотя у меня есть простое одностраничное приложение ... продолжайте набирать его ... но это мне очень помогло!) - person twknab; 08.03.2018
comment
чтобы уменьшить выкачку, вы можете использовать: ‹IfModule mod_deflate.c› ‹FilesMatch \.(js|css|ttf|html|xml|plain)$› SetOutputFilter DEFLATE ‹/FilesMatch› ‹/IfModule› - person Darksymphony; 01.06.2020

Я думаю, вам нужно включить сжатие для определенных файлов, таких как css, js и xml. Следующий код, добавленный в корневой файл .htaccess вашего домена, активирует такую ​​функцию на вашем сервере:

<IfModule mod_headers.c>
  <FilesMatch "\.(js|css|xml|gz)$">
    Header append Vary: Accept-Encoding
  </FilesMatch>
</IfModule>

Если вы хотите добавить к этому правилу больше типов файлов, просто добавьте его расширение в инструкцию! <FilesMatch "\.(js|css|xml|gz|newone)$">

person Patartics Milán    schedule 20.05.2013
comment
я добавил этот код в свой файл .htaccess, но мой веб-сайт все еще не сжат, что не так, вы можете помочь .. я связался с моей хостинговой компанией, и они - кучка идиотов, говорящих, что htaccess не должен быть в корне веб-сайта в первую очередь !!! сумасшедший - person jshariar; 20.05.2013
comment
Я не знаю, в чем проблема. Вы должны вставить код в пустой файл .htaccess (должен находиться в том же каталоге, что и index. html/index.php). Может быть, это сработает, и вы сможете узнать, в чем проблема. Попробуйте этот инструмент для проверки сжатия. Возможно, кеширование браузера создает некоторые проблемы. - person Patartics Milán; 20.05.2013
comment
В вашем коде опечатка — вам нужно двоеточие после «Vary»: Header append Vary: Accept-Encoding - person fastasleep; 07.11.2013

у меня тоже были проблемы с этим не работает

Что случилось, так это то, что у меня была другая директива заголовка для моих файлов php

У меня был установлен заголовок Cache-control, и он перезаписывает заголовок, добавляя Vary, поэтому вам нужно поместить их в один и тот же блок.
Что мне нужно было сделать, так это установить Vary для всех остальных файлов в одном операторе Filesmatch и Cache и Vary для файлов php в отдельном выражении FilesMatch, например:

<IfModule mod_headers.c>
<FilesMatch "\.(js|css|gz)$">
 Header append Vary: Accept-Encoding
</FilesMatch>
</IfModule>


<IfModule mod_headers.c>
<FilesMatch "\.(php)$">
 Header set Cache-Control "max-age=300"
 Header append Vary: Accept-Encoding
</FilesMatch>
</IfModule>

Это не мой настоящий оператор Cache-Control — он просто упрощен для примера кода.

person Nat    schedule 30.11.2014