The Vary HTTP header
The Vary header is a HTTP header whereby a HTTP server can indicate to itermediate caches that the contents of the URI varies based on specified aspects of the client request.
HTTP/1.1 references
- 12.1 Server-driven Negotiation
- Describes what content server-driven content negotiation is, and HTTP requirements for servers doing this. The other two sections in the same chapter is also interesting, but not directly related to the Vary header.
- 13.6 Caching Negotiated Responses
- Describes the requirements put on caches implementing support for caching of server-driven content-negotiated objects.
- 14.44 Vary
- The syntax and abilities of the HTTP Vary header.
- 14.9 ETag
- Description of the ETag HTTP header
- 14.26 If-None-Match
- If-None-Match conditional queries to verify if any of the cached entities are valid for the requested resource.
- 13.3.3 Strong and weak tags
- Describes the relation between strong and weak tags, and the conditions when Last-Modified can be viewed as a strong tag.
Notes
Vary can be supported by caches in three degrees
- No support, denying caching of varying objects
- Basic support, supporting exact matches only.
- Full support, supporting fuzzy matches via conditional queries to the origin server to find if any of the cached entities match the request when there is no exact match. The obvious example is "Vary: *", but also provides for when the server returns the same object to slightly different requests (for example different versions or platforms of the same browser). Requires the support and use of ETag, and the ability to index the ETag's of the cached variants for a given URI.
$Id: vary-header.html,v 1.7 2001/02/10 19:35:15 hno Exp $