A method and apparatus for web caching is disclosed. The method and apparatus may be implemented in hardware,
software or
firmware. Complementary
cache management modules, a coherency module and a cache module(s) are installed complementary gateways for data and for clients respectively. The coherency management module monitors
data access requests and or response and determines for each: the
uniform resource locator (URL) of the requested
web page, the URL of the requestor and a signature. The signature is computed using cryptographic techniques and in particular a
hash function for which the input is the corresponding
web page for which a signature is to be generated. The coherency management module caches these signatures and the corresponding URL and uses the signatures to determine when a page has been updated. When, on the basis of signature comparisons it is determined that a page has been updated the coherency management module sends a notification to all complementary cache modules. Each cache module caches web pages requested by the associated
client(s) to which it is coupled. The notification from the
cache management module results in the cache module(s) which are the recipient of a given notice updating their tag table with a stale bit for the associated
web page. The cache module(s) use this information in the associated tag tables to determine which pages they need to update. The cache modules initiate this update during intervals of reduced activity in the servers, gateways, routers, or switches of which they are a part. All clients requesting data through the
system of which each cache module is a part are provided by the associated cache module with cached copies of requested web pages.