Признание : у сайтов, которые я поддерживаю, есть разные правила для управления кэшем, в основном основанные на конфигурации сервера по умолчанию, а затем рекомендации от плагинов Page Speed & Y-Slow Firefox и представление «Сетевые ресурсы» в Google Speed Tracer . Cache-Control имеет значение private / public в зависимости от того, что они говорят делать, заголовки ETag / Last-Modified используются только в том случае, если Y-Slow предполагает, что что-то не так, и Vary-Accept-Encoding кажется необходимым при ручном gziping файлах для Amazon CloudFront.
При чтении материала о различных опциях и их действиях появляется противоречивая информация, правила для сломанных прокси и конфигурации культа груза . Любая официальная информация, предоставленная инструментами анализа, упомянутыми выше, является довольно недоступной, поскольку она касается каждой темы в отдельности, а не в качестве единой стратегии (поэтому нет перекрестных ссылок на методы).
Например, кажется, не имеет смысла, что инструменты анализа скорости оценивают сайт с ETag так же, как сайт без них, если они предназначены для помощи в кэшировании.
Каковы жесткие и быстрые правила для стратегии Cache Control, независимой от платформы?
РЕДАКТИРОВАТЬ:
Ссылка через статью Джеффа Этвуд объясняет Кэширование в превосходной глубине.
Для записи вот жесткие и быстрые правила:
Если файл сжимается с использованием GZIP и т. Д. - используйте «cache-control: private», поскольку прокси-сервер может вернуть сжатую версию клиенту, который ее не поддерживает (однако в кеше браузера будут храниться файлы, помеченные таким образом). Также не забудьте включить «Vary: Accept-Encoding», чтобы сказать, что это сжимаемо.
Используйте Last-Modified в сочетании с ETag - использование пояса и фигурных скобок обеспечивает оба валидатора, в то время как ETag основан на содержимом файла, а не только на времени модификации, при использовании обоих охватывает все базы. ПРИМЕЧАНИЕ. По какой- то причине в PageTest AOL применяется карт-бланш против ETags. Если вы используете Apache на нескольких серверах для размещения одного и того же контента, удалите неявно объявленный inode из ETags, исключив его из директивы FileETag (т. Е. «FileETag MTime Size»), если вы действительно не используете ту же живую файловую систему.
Всегда используйте «cache-control: public» - это означает, что прокси-серверы (и кеш браузера) будут возвращать ваш контент, даже если для остальной части страницы требуется HTTP-аутентификация и т. Д.