Заголовок 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
Запрос в примере отправлен к изображению с разрешением .png на сайте.