Client Caching

To reduce bandwidth usage and latency, clients are encouraged to cache the data retrieved from a web server.

On sites with proxy servers, the proxy can also work as a cache. This allows a user of the proxy server to use documents that might have been previously retrieved and cached by other users of the proxy.

A complication with caching, however, is that the client or proxy needs to know when the document has changed on the server. HTTP provides a mechanism for cache management through a set of headers. There are two general methods for determining if a server resource has changed. One method checks for the most recent modification time of the document. Another method checks for modifications in the entity tag associated with the document.

The server can also use the Cache-Control and Pragma headers to indicate caching properties to the client. Some documents aren’t appropriate for caching, either for security reasons or because they are dynamic documents (e.g., created on the fly by a CGI script). Under HTTP 1.0, the Pragma header with a no-cache value indicates the document should not be cached. Under HTTP 1.1, the Cache-Control header supplants Pragma, with several caching directives in addition to no-cache.

Get HTTP Pocket Reference now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.