31 Май Как проверить отдается страница из кэша или файла через Bash (Curl)
В консоли bash или аналогичной выполнить запрос:
Получим ответ вида:
Как расшифровать ответ сервера?
Получив заголовки (headers), нам нужно обратить внимание на несколько ключевых маркеров. Именно они подскажут, как сформирована страница:
- Last-Modified и ETag. В нашем примере присутствуют оба этих заголовка. Как правило, их наличие означает, что веб-сервер (Nginx или Apache) отдает физический статический файл. Сервер знает точное время его последнего изменения и сгенерировал для него уникальный идентификатор (ETag). Динамические скрипты (например, чистый PHP без плагинов кэширования) эти заголовки по умолчанию не отдают.
- Специфичные заголовки кэширования (X-Cache и аналоги). Если на сервере настроен кэширующий прокси (например, Varnish, Nginx FastCGI Cache) или подключена CDN (Cloudflare), ищите заголовки вроде
X-Cache,X-Proxy-CacheилиCF-Cache-Status.- Статус HIT означает, что страница была отдана из кэша (скрипты не дергались, база данных не опрашивалась).
- Статус MISS или BYPASS означает, что кэш был проигнорирован или пуст, и страница генерировалась сервером на лету.
- Cache-Control и Age. Заголовок
Age(возраст в секундах) также явно указывает на то, что документ был взят из кэша, а не сгенерирован в эту же секунду. - Признаки динамической генерации. Если вместо
Last-Modifiedвы видите заголовкиX-Powered-By: PHP/...,Set-Cookie(установка новых сессий) иCache-Control: no-store, no-cache, значит страница каждый раз собирается движком (например, WordPress или Bitrix) заново и не кэшируется.
Таким образом, анализируя HTTP-заголовки через curl -I, можно за пару секунд проверить корректность работы серверного кэша или убедиться, что статика отдается напрямую веб-сервером.
Нет комментариев