HTTP – Caching

  • Post author:
  • Post category:HTTP
  • Post comments:1 Comment

In this guide, we will discuss Caching in HTTP. HTTP is typically used for distributed information systems, where performance can be improved by the use of response caches. The HTTP/1.1 protocol includes a number of elements intended to make caching work.

The goal of caching in HTTP/1.1 is to eliminate the need to send requests in many cases, and to eliminate the need to send full responses in many other cases.

The basic cache mechanisms in HTTP/1.1 are implicit directives to caches where server-specifies expiration times and validators. We use the Cache-Control header for this purpose.

The Cache-Control header allows a client or server to transmit a variety of directives in either requests or responses. These directives typically override the default caching algorithms. The caching directives are specified in a comma-separated list. For example:

Cache-control: no-cache

The following cache request directives can be used by the client in its HTTP request:

S.N.Cache Request Directive and Description
1no-cacheA cache must not use the response to satisfy a subsequent request without successful revalidation with the origin server.
2no-storeThe cache should not store anything about the client request or server response.
3max-age = secondsIndicates that the client is willing to accept a response whose age is not greater than the specified time in seconds.
4max-stale [ = seconds ]Indicates that the client is willing to accept a response that has exceeded its expiration time. If seconds are given, it must not be expired by more than that time.
5min-fresh = secondsIndicates that the client is willing to accept a response whose freshness lifetime is not less than its current age plus the specified time in seconds.
6no-transformDoes not convert the entity-body.
7only-if-cachedDoes not retrieve new data. The cache can send a document only if it is in the cache, and should not contact the origin-server to see if a newer copy exists.

The following cache response directives can be used by the server in its HTTP response:

S.N.Cache Response Directive and Description
1publicIndicates that the response may be cached by any cache.
2privateIndicates that all or part of the response message is intended for a single user and must not be cached by a shared cache.
3no-cacheA cache must not use the response to satisfy a subsequent request without successful re-validation with the origin server.
4no-storeThe cache should not store anything about the client request or server response.
5no-transformDoes not convert the entity-body.
6must-revalidateThe cache must verify the status of stale documents before using it and expired ones should not be used.
7proxy-revalidateThe proxy-revalidate directive has the same meaning as the must- revalidate directive, except that it does not apply to non-shared user agent caches.
8max-age = secondsIndicates that the client is willing to accept a response whose age is not greater than the specified time in seconds.
9s-maxage = secondsThe maximum age specified by this directive overrides the maximum age specified by either the max-age directive or the Expires header. The s-maxage directive is always ignored by a private cache.

Next Topic : Click Here

This Post Has One Comment

Leave a Reply