Methods of HTTP Caching

Cache Hierarchies

Parent and Sibling Caches

In practice, a multitude of caches forms a cache hierarchy between web client and server. Traditional terminology distinguishes „parent caches“ and „sibling caches“:

  • If a cache A forwards requests to another cache B, then B is said to be „parent“ of A.
  • If both caches A and B forward requests to a common parent C, then A and B are said to be „siblings“.

One cache can have multiple parents for purposes of traffic routing, load distribution or specialized handling.

For example, a child cache could forward all requests to file resources of MIME type application/ to a specific parent that has a function for scanning file resources for malware.

An HTTP Cache Hierarchy

The following diagram illustrates a cache hierarchy scenario:

  • A web browser maintains an own, private cache. The cache is called „private“ because it is only accessed by a single user.
  • The local network maintains a load-balancing set of public caches. Clients query a cache for a resource, and the cache either serves the cached resource or retrieves a current version from the webserver. As opposed to private caches, public caches can deliver cached resources to multiple users.
  • The webserver does not deliver resources directly, a transparent cache receives web requests on a public-facing network interface and serves either the cached resource or retrieves a current version from the webserver.

HTTP cache hierarchy featuring one local cache, three sibling public caches and a public transparent cache in front of a web server.