Срок действия заголовка HTTP и управление кэшом
1. Концепция
Кэширование кэша используется для управления HTTP-кэшированием (возможно, частично не реализовано в HTTP/1.0, только Pragma: без кэша реализован)
Форматирование пакета:
Cache-Control: cache-directive
Кэш-директива может выглядеть следующим образом:
Запрос: | «Без кэша» | «Без магазина» | «максимальный возраст» «=» дельта-секунды | "макс-устаревшее" [ "=" дельта-секунды ] | "min-fresh" "=" дельта-секунды | «Без трансформации» | "Only-if-cached" | «кэш-расширение»
Ответ: | «Публичный» | «частный» [ =" <"> поле <"> ] | "no-cache" [ "=" <"> поле <"> ] | «Без магазина» | «Без трансформации» | «Обязательно переоценить» | «прокси-ревалидация» | «максимальный возраст» «=» дельта-секунды | "s-maxage" "=" дельта-секунды | «кэш-расширение»
Часть описания: Делится ли на кэшируемое или нет Public указывает, что ответ может быть кэширован любой областью кэша. Private означает, что полностью или часть ответного сообщения одного пользователя не может быть обработано общим кэшом. Это позволяет серверу описывать только тогда, когда пользователь Сообщение с частичным ответом, которое недопустимо для запросов от других пользователей. no-cache означает, что запрос или ответное сообщение нельзя кэшировать (HTTP/1.0 заменяется на no-cache Pragma) В зависимости от того, что можно кэшировать No-Store используется для предотвращения непреднамеренной публикации важной информации. Отправка запроса сделает запрос и ответные сообщения не кэшированными. Тайм-аут согласно кэшу max-age означает, что клиент может получить ответ с сроком жизни не более определённого времени (в секундах). min-fresh означает, что клиент может получить ответ с временем ответа меньше текущего времени плюс указанное время. Max-Stale означает, что клиент может получать ответные сообщения сверх истечённого периода. Если вы укажете значение для максимального устаревшего сообщения, клиент может Получайте ответные сообщения, превышающие указанное значение сверхурочного периода. Сроки действия — это время существования, позволяя клиенту не проверять (делать запрос) до этого времени, что эквивалентно максимальному возрасту Эффект. Но если они существуют одновременно, их перезаписывает максимальный возраст Cache-Control. Формат: Expires = "Expires" ":" HTTP-date Например
Expires: Thu, 01 Dec 1994 16:00:00 GMT (必须是GMT格式)
2. Применение Сроки действия множества и управление кэшом через META через HTTP <meta http-equiv="Cache-Control" content="max-age=7200" /> <meta http-equiv="Expires" content="Mon, 20 Jul 2009 23:00:00 GMT" /> Приведённые выше настройки — всего лишь примеры, и вы действительно можете использовать одну из них. Если вы пишете это так, он действует только для веб-страницы, а не для изображений или других запросов на странице, и не будет кэшировать. Таким образом, у клиента будет больше запросов, и хотя это просто проверка статуса «Последнее изменение», количество запросов определённо влияет на скорость просмотра. Если хотите добавить кэш в файл, можно использовать модуль mod_expire Apache, который записан как <IfModule mod_expires.c> ExpiresActive On Срок истечётПо умолчанию «доступ плюс 1 день» </IfModule> Помню, что ExpiresActive настроен на Включено, сначала я его не включал, и, похоже, как бы ни был YSlow, я не могу найти механизм кэширования. Если добавить так, по умолчанию всё будет использоваться. Если вы хотите нацелиться на отдельные типы MIME, вы можете: ExpiresByType image/gif «доступ плюс 5 часов 3 минуты» См. модуль Apache mod_expires Кроме того, при нажатии «Обновить» в браузере все запросы, отправленные клиентом, имеют значение max-age=0, что означает, что запрос проверен и отправлен на сервер Если вы попросите проверить кэш и затем обновить его, обычно получите 304 «Не изменено», то есть изменений нет.
|