Взаимодействие с кэшированием вывода IIS
Модуль перезаписи URL-адресов управляет поведением кэша вывода IIS, чтобы:
Оптимально использовать режим ядра и кэширование вывода ответов в пользовательском режиме для перезаписанных URL-адресов, тем самым повышая производительность веб-приложения, использующего модуль перезаписи URL-адресов. Предотвратить кеширование ответов, когда логика кеширования может быть нарушена из-за перезаписи URL. Модуль управляет кешированием вывода, изменяя определенные свойства кэширования или полностью отключая кеширование. Модуль не может включить кэширование вывода, если оно было отключено конфигурацией IIS или любым другим модулем в конвейере IIS. Кэширование вывода управляется следующим образом:
Модуль всегда устанавливает настройку кеша пользовательского режима variableByHeader = "HTTP_X_ORIGINAL_URL". Это гарантирует, что при включении кэширования в пользовательском режиме модуль учитывает исходный URL-адрес для создания ключа для записи кэша.
Если в наборе правил перезаписи используются серверные переменные со значениями, которые либо постоянны на протяжении всего процесса, либо являются производными от запрошенного URL-адреса, набор правил считается безопасным для кэширования вывода. Это означает, что модуль перезаписи URL-адреса не изменит существующую политику кэширования каким-либо образом, кроме установки variableByHeader, как описано в шаге
Следующие серверные переменные при использовании в правилах перезаписи не влияют на политику кэширования вывода:
«CACHE_URL», «DOCUMENT_ROOT», «HTTP_URL», «HTTP_HOST», «PATH_INFO», «PATH_TRANSLATED», «QUERY_STRING», «REQUEST_FILENAME», «REQUEST_URI», «SCRIPT_NAME_FILENAME», «SCRIPT_NAME_FILENAME», «SCRIPT_NAME_FILENAME», «SCRIPT_NAME_FILENAME», «SCRIPT_NAME_FILENAME», «SCRIPT_NAME_FILENAME» "," URL "," URL_PATH_INFO "," APP_POOL_ID "," APPL_MD_PATH "," APPL_PHYSICAL_PATH "," GATEWAY_INTERFACE "," SERVER_SOFTWARE "," SSI_EXEC_DISABLED "
3. Если набор правил перезаписи использует любую серверную переменную, не упомянутую в приведенном выше списке, набор правил считается небезопасным для кэширования вывода. Это означает, что модуль перезаписи URL-адресов отключит кеширование в режиме ядра для всех запросов, независимо от того, были ли URL-адреса запросов перезаписаны или нет. Кроме того, модуль изменит политику кэширования для кеша пользовательского режима, установив свойство кэшированияvarByValue, чтобы оно содержало объединенную строку всех значений переменных сервера, используемых в наборе правил.