Разделите общие и персональные данные
Обычно проще начать с файлов оформления, публичных изображений и других общих ресурсов. Корзина, личный кабинет, результаты персонального API и операции записи требуют другого отношения. Расширение файла само по себе не доказывает публичность ответа: сервер может выдавать по этому адресу динамические данные.
В RoboGuard кеш включается для выбранных публичных путей. Запросы с авторизацией и cookies приложения обходят чтение и запись общего кеша; ответ с Set-Cookie не должен становиться общим объектом. Не ослабляйте эти ограничения ради более высокого процента попаданий.
| Ресурс | Что проверить |
|---|---|
| Публичный CSS, JS или изображение | Одинаковый ответ для посетителей, корректный срок хранения и обновление версии. |
| Страница с именем пользователя или корзиной | Персонализацию и запрет хранения в общем кеше. |
| API | Наличие личных данных, авторизации и различий по параметрам запроса. |
| Форма и отправка заказа | Сохранение динамического выполнения и отсутствие повторного использования результата операции. |
Проверьте заголовки на сервере сайта
Cache-Control описывает правила хранения и использования ответа. private запрещает хранение в общем кеше, no-store запрещает сохранение, а no-cache требует проверки актуальности перед повторным использованием. Эти директивы не являются синонимами.
TTL в настройке RoboGuard ограничивает допустимую свежесть, но не превращает приватный ответ в публичный и не отменяет требования origin. Если заголовки противоречат назначению ресурса, сначала исправьте их на сайте. Кеш не должен угадывать бизнес-смысл данных.
- Откройте ответ выбранного ресурса и проверьте Cache-Control, Set-Cookie и Vary.
- Сравните ответ без входа и после входа, если маршрут может зависеть от сессии.
- Выберите срок с учётом того, как часто меняется ресурс и как быстро обновление должно стать видимым.
- Добавьте только проверенные пути и убедитесь, что настройка применена.
Не объединяйте разные варианты ответа
Один адрес может отдавать разные языки, кодировки или представления. Vary описывает, какие заголовки запроса влияют на вариант. Параметры URL тоже могут менять содержание: например, размер изображения или фильтр списка.
В RoboGuard ключ кеша учитывает сайт, адрес и полный query; варианты не должны смешиваться между доменами и посетителями. Не удаляйте параметры из ключа на основании предположения, что они «только рекламные». Сначала докажите, что они не меняют ответ и разрешены к такому исключению используемым решением.
- Сравните варианты языка и сжатия, если их поддерживает origin.
- Проверьте адреса с существенными параметрами отдельно.
- Проверьте условное обновление ресурса и его содержимое после изменения на origin.
- Не считайте частичный ответ на Range полноценным объектом: такие запросы требуют предусмотренной обработки.
Проверяйте результат очистки
После обновления файла посетитель может некоторое время получать сохранённую версию. Версионирование адресов ресурсов и управляемая очистка решают разные части этой задачи. Очистка кеша RoboGuard не удаляет автоматически копию из браузера посетителя.
У очистки конкретного URL есть граница: она не гарантирует устранение объекта, который ещё заполнялся параллельно. Когда требуется исключить и такие старые заполнения, используется предусмотренная очистка сайта со сменой поколения. Проверяйте результат по всем задействованным узлам; ответ одного узла не подтверждает состояние остальных.
- Убедитесь, что обновление уже доступно на origin.
- Выберите подходящий вид очистки и точный адрес с параметрами, если они есть.
- Проверьте подтверждение операции и возможные ошибки или недоступные узлы.
- Снова получите ресурс через защиту и сравните содержание, учитывая отдельный кеш браузера.
Измеряйте холодный, тёплый и динамический путь
Попадание в кеш уменьшает обращения к origin только для подходящего ресурса. Первый запрос, обход кеша и динамика имеют другой путь. Сравнивайте одинаковые страницы и условия, отдельно отмечая промахи, попадания, обход и ошибки.
Проверьте двух пользователей с разными сессиями, обычную форму и личную часть сайта. В RoboGuard попадание в кеш не обходит защитные проверки. Ускорение отдельного файла не доказывает ускорения всего сайта: оценивайте загрузку страницы и пользовательские действия целиком.
- Количество запросов и байты, дошедшие до origin.
- Время ответа для холодного и повторного обращения.
- Корректность содержания, включая приватные данные и варианты.
- Поведение после очистки, изменения ресурса и ошибки кеша.