If a stored response is not "fresh enough" by the most restrictive freshness requirement of both the client and the origin server, in carefully considered circumstances the cache MAY still return the response with the appropriate Warning header (see section 13.1.5 and 14.46), unless such a response is prohibited (e.g., by a "no-store" cache-directive, or by a "no-cache" cache-request-directive; see section 14.9).

If the cache can not communicate with the origin server, then a correct cache SHOULD respond as above if the response can be correctly served from the cache; if not it MUST return an error or warning indicating that there was a communication failure.

HTTP/1.0 caches will cache all Warnings in responses, without deleting the ones in the first category.

updating cached messages-77

When multiple warnings are attached to a response, it might not be practical or reasonable to display all of them to the user.

This version of HTTP does not specify strict priority rules for deciding which warnings to display and in what order, but does suggest some heuristics.

Warnings MAY be used for other purposes, both cache-related and otherwise.

The use of a warning, rather than an error status code, distinguish these responses from true failures. The first digit indicates whether the Warning MUST or MUST NOT be deleted from a stored cache entry after a successful revalidation: 1xx Warnings that describe the freshness or revalidation status of the response, and so MUST be deleted after a successful revalidation.

A user agent that receives a stale response without a Warning MAY display a warning indication to the user.

Whenever a cache returns a response that is neither first-hand nor "fresh enough" (in the sense of condition 2 in section 13.1.1), it MUST attach a warning to that effect, using a Warning general-header.

However, in some cases, cache-control directives are explicitly specified as weakening the approximation of semantic transparency (for example, "max-stale" or "public").

The cache-control directives are described in detail in section 14.9.

Multiple warnings MAY be attached to a response (either by the origin server or by a cache), including multiple warnings with the same code number.

For example, a server might provide the same warning with texts in both English and Basque.

HTTP is typically used for distributed information systems, where performance can be improved by the use of response caches.