- From: Daniel DuBois <dan@spyglass.com>
- Date: Tue, 28 May 1996 18:25:48 -0500
- To: paulle@microsoft.com, http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
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 mean? Does it mean given this User-Agent header (and only this User-Agent header), I then have two plain resources X and Y to choose from? Are X and Y servable with different User-Agents if I ignore the Vary header? Can I ignore the content-location/Alternates combo and serve the entity Y when I receive a future request for /index with that user agent? If you think this is a nonsense example (I do), you may be right, but I'll bet money someone will try to do this. People just love their "Netscape enhanced" pages. I'd venture to say that ignoring these headers will make 'semantic tranparency' break. Including a rule that says Alternates: equates to "Vary: {accept-headers}" won't. As far as I'm concerned one Vary: spoils the bunch. Either you have Alternates, or you have Vary, not both. If you really want (server-side) negotiation that handles both user-agent and accept headers, you should have: HTTP/1.1 200 OK Vary: User-Agent, Accept, Accept-Language, Accept-Charset, Accept-Encoding and then whatever perverse algorithm you have for selecting that right entity is your business and no one elses. So what options are we/Roy planning on taking then? Will we say in a future draft that "Vary:*" will occur on all responses with an Alternates: headers, and that if an Alternates: header is present, the Vary header should be ignored or produce an error? (I'm for this last clause, but...) What about the poor 1.1 proxies who don't know about Alternates? They'll have tons of "Vary:*" tagged responses that will effectively act like a must-revalidate. Not a nice thing to do to a negotiating service provider who tried to make "wonderful, very-cachable, no-don't-ask-me-you-pick, transparent" negotiation available to users/proxies. ----- Daniel DuBois, Software Animal dan@spyglass.com http://www.spyglass.com/~ddubois/
Received on Tuesday, 28 May 1996 16:34:13 UTC