本文介绍HTTP.sys驱动程序不缓存内容的实例。
原始产品版本: Internet Information Services
原始 KB 数: 817445
HTTP.sys不缓存的情况
响应 HTTP.sys 缓存使用请求标头中的相应标志缓存任何请求。 此缓存按请求禁用。 但是,如果以下一个或多个条件为 true, HTTP.sys 则不会缓存请求响应:
请求不是匿名请求。
请求需要身份验证。 (例如,请求包含标头
Authorization:。网站配置为使用页脚。
动态压缩已启用,用于响应。
备注
静态压缩可用于
HTTP.sys缓存。静态文件是通用命名约定 (UNC) 文件,
DoDirMonitoringForUnc并且未启用注册表项。备注
可以使用
DoDirMonitoringForUnc注册表属性(DWORD 值)将静态文件缓存切换回更改通知缓存。 设置如下: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 KB。响应标头大小大于每个响应的最大标头大小。 默认值为 1,024 字节。
缓存已满。 默认大小与计算机中的物理内存成正比。
响应长度为零。
安装了不识别缓存的 Internet 服务器应用程序接口 (ISAPI) 筛选器。
备注
默认情况下,ISAPI 筛选器不识别缓存。 必须设置筛选器的
FilterEnableCache元数据库属性,使其具有缓存感知性。 默认安装 IIS 中的所有筛选器都是可感知缓存的。 这包括 FrontPage 和 ASP.NET。
有关元数据库属性的详细信息FilterEnableCache,请查看 Windows 10 部署中的新增功能。静态文件作为默认文档进行访问。 (例如,根目录中存在Default.htm。按名称 (
http://contoso.com/default.htm/) 访问特定文件会导致HTTP.sy缓存该文件。 通过请求根文件夹(http://contoso.com/)访问网站会导致非缓存响应。备注
如果默认文档列表中列出的第一页不可访问,IIS 将尝试为默认文档列表中的第二页提供服务。 在这种情况下,不会从缓存中提供该静态页面。