Microsoft Proxy Server Caching Criteria and Troubleshooting (259268)



The information in this article applies to:

  • Microsoft Proxy Server 2.0

This article was previously published under Q259268

SUMMARY

This article describes how not to cache an individual Web site. You can use this method to troubleshoot problems specific to a single Web site. This article also provides the caching criteria that Proxy Server 2.0 uses.

MORE INFORMATION

How to Not Cache an Individual Web Site

  1. Open Internet Service Manager.
  2. Right-click Web Proxy Service, and then click Properties.
  3. Click the Advanced Cache Policy tab, and then under Cache Filters, select Never Cache for the Web site that you are troubleshooting.

Proxy Server Caching Criteria

A Web object must satisfy the following criteria in order to be cached:
  • The request must be a GET.
  • There can be no keywords, which are typically used for a basic logon process.
  • The file must be served by Hypertext Transfer Protocol (HTTP). Objects associated with other protocols are not cached.
  • The HTTP response header from the Web server must not include the following:

    WWW-Authenticate
    Pragma: no-cache
    Cache-control: Private
    Cache-control: no-cache
    Set-Cookie

    Note: These options are set on the Web server, and not on the client.
  • The date in the Expires header field must be later than the date in the Date header field. The Expires header is used in all HTTP requests to indicate a date and a time for the request to expire on the network. The Date header is used to indicate the date and the time at which the Web server received the request. Both fields are generically returned in almost all HTTP requests. Some Web servers indicate to downstream caches that a page should not be cached by setting the Expires header equal to the Date header, which indicates that the page expires immediately. Also, setting this field to Expires: 0 prevents caching as well.
  • The HTTP Result code must be 200 (success), and the object must not be encrypted or protected by Secure Sockets Layer (SSL).
  • There cannot be an Authorization header in the HTTP request header, or Vary in the response header.
  • The HTTP header may include cookies, which allow a server to customize a response for a particular user.

    Cookies are used for custom pages or for informal (that is, not very secure) authentication. Microsoft Proxy Server treats cookies as another optional HTTP header, which it disregards, with the exception of the Set-Cookie header. It is assumed that subsequent transactions after the cookie has been set can be cached, unless any of the subsequent objects requested include headers with cache-ineligible exception values based on the criteria in the preceding list.

Passive Caching and Active Caching

Proxy Server caches data by means of two different types of caching processes: passive caching and active caching.

Common Items That Do Not Affect Caching

The cache only uses the criteria listed above to decide whether to cache an object. Periodically, an assumption is made that the proxy uses various other criteria such as those listed below:
  • URLs containing the strings "cgi," "cgi-bin," and so forth.
  • Active Server Pages (ASP) or other dynamic content.
  • Responses that do not contain a Last-Modified date (an administrator option exists to not cache those, but it is off by default).
  • Requests containing a Cookie header.
  • META tags within Hyper Text Markup Language (HTML). Most Web servers do not promote META tags from the HTML to the HTTP headers.
  • The object type (for example, Adobe Acrobat PDF files).

Modification Type:MinorLast Reviewed:1/18/2006
Keywords:kbenv kbinfo kbtshoot KB259268