Microsoft Internet Security and Acceleration Server 2004 SDK

How ISA Server Caching Works

The Web proxy of ISA Server maintains a cache of Web objects and attempts to fulfill Web requests from the cache. If the request cannot be fulfilled from the cache, the ISA Server computer initiates a new request on behalf of the client. Once the remote Web server responds to the ISA Server computer, the ISA Server computer caches the response to the original client request and sends a response to the client.

ISA Server supports forward caching, used for outgoing requests, and reverse caching, used for incoming requests. Clients in both forward caching and reverse caching benefit from the full gamut of ISA Server caching features.

If you installed ISA Server in Firewall mode, ISA Server does not maintain a cache.

ISA Server analyzes routing rules, cache configuration, and existing cache content to determine if an object should be retrieved from the cache.

First, if the user request is allowed, ISA Server checks if the object exists in its cache. If the request is made to an array of ISA Server computers, then the Cache Array Routing Protocol (CARP) algorithm is used to determine which server's cache should be checked. If the object is not in the cache, then ISA Server checks the routing rule's action, to determine how to route the request. If the object is in the cache, then ISA Server performs the following steps:

  1. ISA Server checks if the object is valid. The object is considered invalid if one of the following conditions is true:

    If the object is valid, ISA Server retrieves the object from the cache and returns it to the user.

  2. If the object is invalid, then ISA Server checks the applicable routing rule. If you configured the routing rule cache properties to return any version of the object, then ISA Server retrieves the invalid object from the cache.
  3. If the routing rule is configured to route the request, then ISA Server determines whether to route the request to the upstream server or to the requested Web server.
  4. If the routing rule is configured to route the request to the Web server, then ISA Server checks if the Web server is accessible.
  5. If the Web server is not accessible, then ISA Server checks if you configured the server to return expired objects from the cache. If you instructed the server to return the expired object as long as the specific expiration time did not pass, then the object is returned from the cache to the user.
  6. If the Web server is available, ISA Server determines if the object is cacheable and if you configured the routing rule's cache properties to cache the response. If so, then ISA Server caches the object and returns the object to the user.