Экземпляры, в которых HTTP.sys не кэширует содержимое

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

Оригинальная версия продукта: службы IIS 8.0
Исходный номер базы знаний: 817445

Ситуации, когда HTTP.sys не кэшируются

Кэш HTTP.sys ответов кэширует любой запрос с соответствующим флагом в заголовке запроса. Этот кэш отключается для каждого запроса. Однако если выполняется одно или несколько из следующих условий, HTTP.sys ответ запроса не кэшируются:

  • Запрос не является анонимным запросом.

  • Запрос требует проверки подлинности. (Например, запрос содержит Authorization: заголовок.)

  • Веб-сайт настроен для использования нижнего колонтитула.

  • Динамическое сжатие включено и используется для ответа.

    Примечание.

    При кэшировании можно использовать HTTP.sys статическое сжатие.

  • Статический файл является UNC-файлом, и DoDirMonitoringForUnc раздел реестра не включен.

    Примечание.

    Свойство реестра (значение DWORD) можно использовать DoDirMonitoringForUnc для переключения кэша статических файлов обратно в кэш уведомлений об изменениях. Этот параметр задается следующим образом: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Inetinfo\Parameters
    Значение по умолчанию равно 0 или не включено. Для него можно задать значение 1, чтобы включить кэширование статического содержимого на основе уведомления об изменениях.

  • Запрос содержит строку запроса.

  • Кэш отключен. (То есть MD_VR_NO_CACHE свойство метабазы равно 1.)

    Примечание.

    Дополнительные сведения о свойстве MD_VR_NO_CACHE метабазы см. в документации по продукту. Чтобы просмотреть эту документацию, см . раздел DisableStaticFileCache.

  • Запрос содержит тело сущности.

  • Для URL-адреса включено сопоставление сертификатов.

  • Для веб-сайта включено пользовательское ведение журнала.

  • Версия HTTP запроса не является 1.1 или 1.0.

  • Запрос содержит заголовок Translate: f.

  • Присутствует Expect: заголовок, который не содержит точно 100 continue .

  • Запрос содержит заголовок If-Range: или Range: заголовок.

    Примечание.

    HTTP.sys обрабатывает только целые ответы. HTTP.sys не пытается отправлять ответы с диапазоном.

  • Ответ охватывает несколько SendResponse вызовов и SendResponseEntityBody .

    Примечание.

    Кэшируемый ответ должен поступать в одном векторном вызове SendResponse .

  • Общий размер ответа больше, чем максимальный размер ответа. Максимальное значение определяется разделом UriMaxUriBytes реестра, а значение по умолчанию — 256 КБ.

  • Размер заголовка ответа больше максимального размера заголовка ответа. Значение по умолчанию — 1024 байта.

  • Кэш уже заполнен. Размер по умолчанию пропорционален физической памяти на компьютере.

  • Длина ответа равна нулю.

  • Установлен фильтр программного интерфейса ISAPI, который не поддерживает кэш.

    Примечание.

    По умолчанию фильтры ISAPI не поддерживают кэш. Необходимо задать свойство метабазы FilterEnableCache для фильтра, чтобы обеспечить его кэширование. Все фильтры в установке IIS по умолчанию используют кэш. Сюда входят FrontPage и ASP.NET.
    Дополнительные сведения о свойстве FilterEnableCache метабазы см. в разделе Новые возможности в Windows 10 развертывании.

  • Доступ к статическому файлу осуществляется как документ по умолчанию. (Например, Default.htm существует в корневом каталоге.) При доступе к конкретному файлу по имени (http://contoso.com/default.htm/) HTTP.syфайлы кэшируются. Доступ к веб-сайту путем запроса корневой папки (http://contoso.com/) приводит к получению не кэшированного ответа.

    Примечание.

    Если первая страница, указанная в списке "Документ по умолчанию", недоступна, службы IIS пытаются обслужить вторую страницу в списке "Документ по умолчанию". В этом случае эта статическая страница не будет обслуживаться из кэша.