Spec-Zone.ru › Apache HTTP Server

Модуль Apache mod_expires

Описание: Генерация Expires и Cache-Control HTTP-заголовков в соответствии с заданными пользователем критериями
Статус: Расширение
Идентификатор модуля: expires_module
Файл исходного кода: mod_expires.c

Обзор

Этот модуль управляет установкой Expires HTTP-заголовка и директивы max-age Cache-Control HTTP-заголовка в ответах сервера. Дата истечения срока действия может быть установлена относительно времени последней модификации исходного файла или времени доступа клиента.

Эти HTTP-заголовки являются инструкцией для клиента о валидности и сохранении документа. Если документ кэшируется, он может быть получен из кэша, а не из исходного источника, до истечения срока действия. После этого копия в кэше считается «просроченной» и недействительной, и новая копия должна быть получена из исходного источника.

Для изменения директивы Cache-Control помимо max-age (см. раздел 14.9 RFC 2616), можно использовать директиву Header.

Если Expires заголовок уже является частью ответа, генерируемого сервером, например, когда он сгенерирован сценарием CGI или получен по прокси от сервера-источника, этот модуль не изменяет и не добавляет Expires или Cache-Control заголовки.

Альтернативный синтаксис интервала

Директивы ExpiresDefault и ExpiresByType также могут быть определены в более удобочитаемом синтаксисе в форме:

ExpiresDefault "base  [plus num type] [num type] ..."
ExpiresByType type/encoding "base  [plus num type] [num type] ..."

где base — это одно из:

  • access
  • now (эквивалентно 'access')
  • modification

Ключевое слово plus необязательно. num должно быть целым значением [приемлемым для atoi()], а type — одним из:

  • years
  • months
  • weeks
  • days
  • hours
  • minutes
  • seconds

Например, следующие директивы могут быть использованы для того, чтобы документы истекали через 1 месяц после доступа, по умолчанию:

ExpiresDefault "access plus 1 month"
ExpiresDefault "access plus 4 weeks"
ExpiresDefault "access plus 30 days"

Время истечения срока действия можно уточнить, добавив несколько пунктов 'num type' :

ExpiresByType text/html "access plus 1 month 15 days 2 hours"
ExpiresByType image/gif "modification plus 5 hours 3 minutes"

Обратите внимание, что если вы используете настройку, основанную на дате модификации, заголовок Expires не будет добавлен к содержимому, которое не происходит из файла на диске. Это связано с тем, что для такого содержимого нет времени модификации.

Директива ExpiresActive

Описание: Включает генерацию Expires заголовков
Синтаксис:
ExpiresActive On|Off
По умолчанию:
ExpiresActive Off
Контекст: настройка сервера, виртуальный хост, каталог, .htaccess
Переопределение: Индексы
Статус: Расширение
Модуль: mod_expires

Эта директива включает или отключает генерацию Expires и Cache-Control заголовков для соответствующей области документа. (То есть, если она находится в файле .htaccess например, она применяется только к документам, сгенерированным из этого каталога.) Если установлено значение Off, заголовки не будут генерироваться для любого документа в области (если не переопределено на более низком уровне, например, файлом .htaccess переопределяющим файл конфигурации сервера). Если установлено значение On, заголовки будут добавлены к обслуживаемым документам в соответствии с критериями, определенными директивами ExpiresByType и ExpiresDefault (см. ниже).

Обратите внимание, что эта директива не гарантирует, что Expires или Cache-Control заголовок будет сгенерирован. Если критерии не выполнены, заголовок не будет отправлен, и эффект будет таким, как будто эта директива даже не была указана.

Директива ExpiresByType

Описание: Значение заголовка Expires, настроенное по MIME-типу
Синтаксис:
ExpiresByType MIME-type <code>seconds
Контекст: настройка сервера, виртуальный хост, каталог, .htaccess
Переопределение: Индексы
Статус: Расширение
Модуль: mod_expires

Эта директива определяет значение заголовка Expires и директивы max-age заголовка Cache-Control , генерируемого для документов указанного типа (например, text/html). Второй аргумент устанавливает количество секунд, которое будет добавлено к базовому времени для построения даты истечения срока действия. Cache-Control: max-age вычисляется путем вычитания времени запроса из даты истечения срока действия и выражения результата в секундах.

Базовое время — это либо время последней модификации файла, либо время доступа клиента к документу. Какой использовать, задается в поле <code> ; M означает, что время последней модификации файла должно использоваться в качестве базового времени, а A означает, что время доступа клиента должно использоваться.

Разница в эффекте незначительна. Если используется M, все текущие копии документа во всех кэшах истекут в одно и то же время, что может быть полезно для чего-то вроде еженедельного уведомления, которое всегда находится по одному и тому же URL. Если используется A, дата истечения срока действия отличается для каждого клиента; это может быть полезно для файлов изображений, которые редко изменяются, особенно для набора связанных документов, которые все ссылаются на одни и те же изображения (т.е. изображения будут многократно использоваться в течение относительно короткого промежутка времени).

Пример:

# enable expirations
ExpiresActive On
# expire GIF images after a month in the client's cache
ExpiresByType image/gif A2592000
# HTML documents are good for a week from the
# time they were changed
ExpiresByType text/html M604800

Обратите внимание, что эта директива имеет эффект только если ExpiresActive On была указана. Она переопределяет, только для указанного MIME-типа, любую дату истечения срока действия, установленную директивой ExpiresDefault.

Вы также можете указать расчет времени истечения срока действия, используя альтернативный синтаксис, описанный ранее в этом документе.

Директива ExpiresDefault

Описание: По умолчанию алгоритм расчета времени истечения срока действия
Синтаксис:
ExpiresDefault <code>seconds
Контекст: настройка сервера, виртуальный хост, каталог, .htaccess
Переопределение: Индексы
Статус: Расширение
Модуль: mod_expires

Эта директива устанавливает алгоритм по умолчанию для расчета времени истечения срока действия для всех документов в соответствующей области. Она может быть переопределена на основе типа с помощью директивы ExpiresByType . См. описание этой директивы для получения подробностей о синтаксисе аргумента, а также описание альтернативного синтаксиса.

© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/mod/mod_expires.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API