Events and Conditions That Disable HTTP.sys Response Caching

Applies To: Windows Server 2003 with SP1

The HTTP.sys response cache will cache any response that has the appropriate flag in the request header; however, HTTP.sys will not cache the response if one of the following criteria applies:

Note

This cache is disabled on a per-request basis.

  • The request is not an anonymous request.

  • The request required authentication (that is, there was an "Authorization:" header present in the request).

  • The site is configured to use a footer.

  • Dynamic compression is enabled and is used for the response. (Static compression can be used for HTTP.sys caching.)

  • There is a query string in the request.

  • The request verb was not GET.

  • The cache is disabled (the MD_VR_NO_CACHE metabase property equals 1).

  • The request has an entity body.

  • Certificate mapping is enabled for the URL in question.

  • Custom logging is enabled for the site in question.

  • The request HTTP version was neither 1.1 nor 1.0.

  • There was a "Translate: f" header in the request (that is, it was a Web Distributed Authoring and Versioning [WebDAV] request).

  • There was an "Expect:" header that did not contain exactly "100 continue."

  • There was either an "If-Range" or "Range" header in the request. HTTP.sys processes only whole responses; it does not attempt to send ranged responses.

  • The response spanned multiple SendResponse/SendResponseEntityBody calls. A cacheable response must come down in a single, vectored SendResponse call.

  • The total response size was greater than the per-response maximum size, which is set by using the UriMaxUriBytes registry key. The default value is 256 KB.

  • The size of the response header was greater than the per-response maximum header size. The default maximum value is 1024 bytes.

  • The cache is already full. The default size of the cache is proportional to the physical memory in the computer.

  • The response is zero length.

  • There is an ISAPI filter installed that is not cache-aware. By default, ISAPI filters are not cache-aware, but you can set the FilterEnableCache metabase property for the filter to make it cache-aware. All filters that are included with IIS 6.0, including FrontPage and ASP.NET filters, are cache-aware.

  • A static file is accessed as a default document. For example, Default.htm exists in the root directory. Accessing the specific file by name (Default.htm) causes HTTP.sys to cache the file. Accessing the site by requesting the root folder (/), for example https://contoso.com/ with no file specified results in an uncached response. Note, however, that a request to a URL such as https://contoso.com/ will be cached by user-mode file caching in the worker process, as usual.

  • The Web site has an IP Restriction list (applies only to Windows 2003 Server Service Pack 1 (SP1)).