RE: Changes to Content Negotiation, Entity Tags, and If-*

>From: 	Daniel DuBois[]
>Sent: 	Tuesday, May 28, 1996 4:25 PM
>To: 	Paul Leach;
>Subject: 	RE: Changes to Content Negotiation, Entity Tags, and If-*
>At 02:59 PM 5/28/96 -0700, Paul Leach wrote:
>>It seems pretty simple to me: if both Vary: and Alternates: were present
>>in a response, then a recipient should get correct behavior if it obeyed
>>either one and ignored the other.
>Sorry, not convinced.  What does
>HTTP/1.1 200 OK
>Vary: User-Agent
>Alternates: { index.X {type {foo}} {language {bar}}
>              index.Y {type {go}}  {encoding {bulls}} }
>Content-Location: index.Y

I'd say that this should be illegal. A cache that ignored Alternates:
(e.g. an HTTP 1.1 cache that doesn't understand it) would operate
incorrectly if given this combination of headers.  If I understand your
example, the underlying resource actually varies on User-Agent,
Content-Type, Content-Language, and Content-Encoding, and hence all four
of these headers should be listed in the Vary: header. (I haven't read
Roy's last draft, so I can't say if this is what he intends if both are

I have a couple of times stated a design principle that it would be very
nice if Vary: and Alternates: were made to be symmetrical -- that either
one should be able to say what the other does -- in the sense that there
ought to be statements in both that would cause correct operation
without recourse to the other. I think this means, for example, that
User-Agent variations should be able to be stated in the Alternates:
header (which I don't recall being part of the Alternates: proposal, but
I could be wrong).


Received on Tuesday, 28 May 1996 18:39:41 UTC