Meaning of the Vary:* HTTP header

Hi everybody,

First, I would like to apologize if this is not the right place to ask a
question.

As far as I know, the HTTP Header Vary specifies a comma separated list of
HTTP headers that need to be considered by caches together with the URL when
deciding if a request is a cache hit or miss.

If that header is omitted, means that only the URL will be considered. Are
this assumptions right?

But what happen when the header is Vary:* ?

RFC 2616 14.4<http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44>

 A Vary field value of *** signals that unspecified parameters not limited
to the request-headers (e.g., the network address of the client), play a
role in the selection of the response representation. The * value MUST NOT
be generated by a proxy server; it may only be generated by an origin
server.

RFC 2616 13.6<http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.6>

 A Vary header field-value of ** always fails to match* and subsequent
requests on that resource can only be properly interpreted by the origin
server.

Does it means that all items with this header are going to be a cache miss?

I find out that ASP.NET is returning that HTTP header if you use their
OutputCacheAttribute, and you have to disable explicitly that behaviour if
you don't want the header, or you want to specify custom headers in Vary, so
I (want to) believe it is unlikely.

Which is the practical meaning of Vary:* ? And what is the difference
between a response with this header and another without the Vary header at
all?
Thanks.

-- 
*_____________________________________________________________________
V*aleriano *T*órtola *L*uis
*vtortola@gmail.com*

Received on Saturday, 1 October 2011 20:03:57 UTC