HTTP.sys不缓存内容的实例
本文介绍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 将尝试为默认文档列表中的第二页提供服务。 在这种情况下,不会从缓存中提供该静态页面。