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


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


8
2017-07-20 02:48


Источник




Ответы:


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

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


7
2017-07-20 03:30



Удивительные ссылки Мэтью. Большое спасибо за обмен! - Ramon Araujo


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

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

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

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

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

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

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


5
2018-06-24 18:35



FWIW: «слабый» - это то, что сделал Google. Expires является абсолютно неприемлемым заголовком для ресурсов, срок действия которых не истекает. Некоторые ресурсы могут быть изменены, но не на определенную дату истечения срока действия. Дело Google в том, что Last-Modified требует условного GET, тогда как Expires позволяет кешу браузера полностью пропускать GET. - Dancrumb
Срок слабый это просто семантика. Дело в том, что использование Last-Modified заголовки в отсутствие других инструкций кэширования оставляют период кеширования до HTTP-клиента. Если ресурс не был изменен, поскольку Last-Modified дата, ресурс следует считать свежим. Напротив, при использовании Expires или Cache-Controlзаголовок источника может установить явный период свежести. - jeffatrackaid
«слабый» v «сильный» определяется в tools.ietf.org/html/rfc7232#section-2.1 (Обратите внимание также на @Dancrumb) - John Bentley