Описание: RFC 2616-совместимый фильтр HTTP-кэширования
Статус: расширение
Идентификатор модуля: cache_module
Исходный файл: mod_cache.c
В mod_cache реализован RFC 2616-совместимый фильтр кэширования содержимого HTTP с поддержкой кэширования согласованных ответов содержимого, содержащих заголовок Vary.
Кеширование, соответствующее RFC 2616, обеспечивает механизм проверки того, является ли устаревший или просроченный контент еще свежим, и может представлять значительное повышение производительности, когда исходный сервер поддерживает условные запросы, путем учета заголовка HTTP-запроса If-None-Match. Контент воссоздается с нуля только тогда, когда контент изменился, а не когда срок действия кэшированной записи истекает.
В качестве фильтра mod_cache может быть помещен перед контентом, исходящим из любого обработчика, включая плоские файлы (обслуживаемые с медленного диска, кэшированные на быстром диске), выходные данные скрипта CGI или генератора динамического контента, или контент, передаваемый с другого сервера.
В конфигурации по умолчанию mod_cache вставляет кеширующий фильтр как можно дальше вперед в стеке фильтров, используя быстрый обработчик для обхода всего процесса обработки запросов при возврате контента клиенту. В этом режиме работы mod_cache можно рассматривать как кеширующий прокси-сервер, прикрепленный к передней части веб-сервера, при работе внутри самого веб-сервера.
Когда быстрый обработчик отключается с помощью директивы CacheQuickHandler, становится возможным вставить фильтр CACHE в точку в стеке фильтров, выбранном администратором. Это дает возможность кэшировать контент до того, как этот контент персонализируется фильтром mod_include или дополнительно сжимается фильтром mod_deflate.
При нормальной работе mod_cache отвечает и может управляться заголовками Cache-Control и Pragma, отправленными клиентом в запросе или сервером в ответе. При исключительных обстоятельствах mod_cache может быть настроен на переопределение этих заголовков и принудительное поведение, специфичное для сайта, однако такое поведение будет ограничено только этим кэшем и не повлияет на работу других кэшей, которые могут существовать между клиентом и сервером, и как результат не рекомендуется, если это строго не необходимо.
RFC 2616 позволяет кешу возвращать устаревшие данные, пока существующая устаревшая запись обновляется с исходного сервера, и это поддерживается mod_cache, когда директива CacheLock соответствующим образом сконфигурирована. Такие ответы будут содержать HTTP-заголовок Warning с кодом ответа 110. RFC 2616 также позволяет кэшу возвращать устаревшие данные, когда попытка обновить устаревшие данные возвращает ошибку 500 или выше, и это поведение поддерживается по умолчанию mod_cache. Такие ответы будут содержать HTTP-заголовок Warning с кодом ответа 111.
Полный список установленных модулей Apache.