Заголовок Cache control и его проверка


Заголовок Cache control — HTTP заголовок, который передается сервером пользовательскому браузеру при обработке запроса. Задание его производится в конфигурационном файле веб-сервера и непосредственно в программном коде сайта. Включив кэширование в .htaccess стоит проверить кэшируются ли данные на самом деле и устанавливается ли верный заголовок.



Заголовок Cache control


Наличие заголовка можно проверить в браузере в отладочном режиме, передавая запросы серверу в консоли или используя специальные сервисы. Для сайтов, обслуживаемых веб-сервером Apache, для задания заголовка Cache control используется файл .htaccess.

Часто для проверки того осуществляется ли кэширование используют GooglePageSpeedInsight или какие-либо специализированные сервисы.



Доверять им стоит не всегда поскольку они могут запрашивать у целевого сервера только информацию по конкретному сайту — часто это означает, что происходит обращение к файлу index.php, который является скриптом (динамический контент обычно не кэшируется). Всевозможные сервисы при этом будут сообщать, что данные не кэшируются, изображения, HTML, CSS и JS кэшироваться будут.



При возникновении каких-либо сомнений лучше проверять кэшируются ли данные запрашивая файл с расширением, например jpg или png, которые чаще всего указываются в .htaccess у сервера через консоль отправляя HTTP запрос.

Зарос должен выглядеть следующим образом:


printf "GET /wp-content/uploads/2016/12/11.css HTTP/1.1\nHost: sitename.ru\n\n\n" | /bin/nc.traditional 123.123.123.123 80 | grep 'Cache-Control'


Здесь присутствует путь к файлу, который проверяем, имя сайта и адрес сервера.

Наличие в выводе  строки Cache-Control с некоторым сроком жизни кэша означает, что кэширование происходит.



В случае если запрос производится к изображению

printf "GET /wp-content/uploads/2016/12/11.jpg HTTP/1.1\nHost: sitename.ru\n\n\n" | /bin/nc.traditional 123.123.123.123 80 | head -n 20


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

Так для Apache, работающего за NGINX, но доступного извне по порту 8080 адрес будет выглядеть как 127.0.0.1 8080

Читайте также про связку Apache2 + Nginx



Заголовок cache control можно проверить с помощью утилиты curl отправив запрос типа HEAD с ключем -I

Заголовок cache control


Запрос в примере отправлен к изображению с разрешением .png на сайте.

Сказать спасибо