Поделиться через


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

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

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

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

Кэш HTTP.sys ответа кэширует любой запрос с соответствующим флагом в заголовке запроса. Этот кэш отключен на основе каждого запроса. Однако если одно или несколько следующих условий имеет значение true, 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 не пытается отправлять диапазонные ответы.

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

    Примечание.

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

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

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

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

  • Ответ равен нулевой длине.

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

    Примечание.

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

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

    Примечание.

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