Настройки правил работы кэша ESPS содержатся в специальном построчном текстовом
файле, имя которого должно быть указано в параметре "Rules File" секции
"Cache" файла esps40.ini. Кэшируемые объекты делятся на группы таким образом,
чтобы все URL такой группы имели одинаковые настройки. Деление объектов на группы
сделано для облегчения процесса конфигурирования. В частном случае, если объект
задан полностью, без использования символов обобщенной подстановки "*", группа
может состоять из одного конкретного URL.
Информация в рассматриваемом файле настройки правил работы кэша располагается
построчно, так что каждая строка содержит одну из перечисленных ниже команд
настройки, а сами команды располагаются блоками, по группам URL. Каждая команда
состоит из ряда полей, разделенных символом двоеточия, причем в первом поле
всегда располагается код команды, а в последующих полях строки - параметры данной
команды. Нераспознанные команды игнорируются, то есть рассматриваются как
комментарии. Также игнорируются любые дополнительные поля в любой команде,
так что администратор может свободно добавлять их в конце строки в качестве
комментария. Пробелы и табуляции в полях игнорируются, так что их можно
использовать как форматирующие символы для улучшения читаемости. Все команды,
находящиеся в блоке той или иной группы, действуют только на URL данной
группы, а на URL групп других блоков никакого влияния не оказывают. Блок
группы URL начинается с команды "URL" и заканчивается на следующей
команде "URL" или с окончанием самого файла настройки правил работы кэша.
Команда URL
Эта команда определяет множество URL, для которых в ниже нее расположенных
строках задаются правила кэширования. Она должна идти первой в блоке
описания группы URL с равными правилами кэширования. Все последующие строки
будут описывать правила кэширования этой группы URL, пока не встретится следующая
команда URL (или же не закончится сам управляющий файл). Эта команда имеет
один параметр - имя объекта, которое может содержать обобщающие символы в любом
месте поля и в любом количестве. В качестве символа обобщения используется звездочка,
ее наличие в любом месте поля заменяет любую последовательность символов любой
длины. Следует отметить, что если некий конкретный URL подходит для нескольких
команд URL управляющего файла, то будут использоваться правила той из них, с
которой обнаружено совпадение наибольшего количества символов, отличных от звездочки.
Например, есть две команды:
1) URL : *.gif :
Тогда URL "http://www.somename.ru/images/345.gif" будет обработан по
правилу 2, а не 1.
2) URL : *images/*.gif :
Команды указания времени хранения объекта
В эту группу команд входят:
Все эти команды имеют по два параметра - значение времени хранения (целое число)
и код единицы измерения:
Таким образом, команда
Min Save Time : 3 : H :
задает в качестве минимального времени хранения три часа. Значение "Default Save Time"
используется для начального времени хранения, то есть назначается всякому объекту
данной группы URL, полученному из сети в первый раз. В дальнейшем время хранения
каждого объекта индивидуально подстраивается под частоту его реальных изменений системой
адаптивного кэширования ESPS таким образом, что всегда
находится в пределах между "Min Save Time" и "Max Save Time" (и будет тем меньше, чем
чаще меняется объект). Минимальное значение времени кэширования во все трех
командах - 1 минута, максимальное - 99 недель. Если же в какой-то группе URL задать
во всех трех командах значение 0 (неважно в каких единицах), то такая группа URL
будет полностью исключена из процесса кэширования. Этот механизм можно использовать
для запрета кэширования тех или иных объектов.
Команды указания допустимого размера объектов
В эту группу команд входят:
Обе эти команды имеют по два параметра - значение допустимого размера (целое число)
и код единицы измерения:
Таким образом, команда
Max Object Size : 256 : K :
задает в качестве максимально допустимого размера объекта для всех URL данной
группы 256 килобайт.
Команда NEED SIZE IN HEADER
Эта команда определяет, будут ли кэшироваться те объекты, поле размера
которых в заголовке HTTP-ответа хранящего их сервера отсутствует. Обычная
практика заключается в том, что такие объекты не кэшируются, так как неизвестно,
были ли они успешно получены до конца, или же просто прервалась связь. Однако,
как показывает наш опыт, современная связь отличается в наше время достаточной устойчивостью,
и можно смело кэшировать даже такие объекты. В сущности, отсутствие размера
в заголовке обычно говорит о том, что данный объект динамически генерируется неким
скриптом, который на момент передачи клиенту заголовка просто еще не знает
того размера, который реально получится в результате работы этого скрипта. Иногда
случается также, что держатели того или иного сервера пытаются таким образом
помешать кэшированию своих объектов искусственным путем. В сервер ESPS данного
поколения добавлена команда, позволяющая повысить степень кэширования, однако
администратор должен применять ее (с параметром, разрешающим кэширование без
размера в заголовке) на свой страх и риск. Опасность ее применения (с параметром,
разрешающим кэширование без размера в заголовке)
заключается в возможности "залипания" кэша на тех объектах, которые меняются
очень часто. Данная команда имеет один параметр - 0 или 1, который и определяет,
будет ли серверу ESPS требоваться (1) поле размера в заголовке ответа, или нет
(0). Обычная (безопасная, общепринятая) настройка заключается, таким образом,
в значении этого параметра равном единице.