Как настроить Apache 2.2.3 для отправки "последних изменений" и т. Д.

И сказать браузеру перезагрузить объект (и / или страницу... все на сайте), только если он был изменен с момента последнего посещения??? htaccess, httpd.conf... у вас есть готовая директива для моего случая? спасибо Большое

2 ответа

Решение

http://html5boilerplate.com/ содержит хорошо прокомментированный файл.htaccess, который имеет много стандартных настроек, которые вы должны учитывать. Среди них есть разумные настройки для истечения срока действия контента (Expires, E-tags, ...).

Вот документация по mod_expires.

Обратите внимание, что Last-Modified Заголовки являются слабыми заголовками кэша. Текущее предпочтение заключается в использовании Cache-Control заголовки.

У Google есть хорошая статья на эту тему.

Оптимизировать кеширование

Срок действия и Cache-Control: максимальный возраст. Они определяют "время жизни свежести" ресурса, то есть период времени, в течение которого браузер может использовать кэшированный ресурс, не проверяя, доступна ли новая версия с веб-сервера. Это "сильные заголовки кэширования", которые применяются безоговорочно; то есть после того, как они установлены и ресурс загружен, браузер не будет выдавать какие-либо запросы GET для ресурса до истечения срока действия или максимального срока действия.

Последнее изменение и ETag. Они определяют некоторые характеристики ресурса, которые браузер проверяет, чтобы определить, совпадают ли файлы. В заголовке Last-Modified это всегда дата. В заголовке ETag это может быть любое значение, однозначно идентифицирующее ресурс (типичные версии файлов или хэши содержимого). Last-Modified - это "слабый" заголовок кэширования, в котором браузер применяет эвристику, чтобы определить, извлечь элемент из кэша или нет. (Эвристика различна для разных браузеров.) Однако эти заголовки позволяют браузеру эффективно обновлять свои кэшированные ресурсы, выполняя условные запросы GET, когда пользователь явно перезагружает страницу. Условные GET не возвращают полный ответ, если ресурс не был изменен на сервере, и поэтому имеют меньшую задержку, чем полные GET.

Я рекомендую использовать либо Cache-Control или же Expires заголовки по мере необходимости, так как они являются сильными заголовками кэша. Некоторые системы будут игнорировать даты последнего изменения.

Затем вы можете использовать такой инструмент, как curl или http://redbot.org/ для проверки заголовков.

Другие вопросы по тегам