httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Roy T. Fielding" <field...@liege.ICS.UCI.EDU>
Subject Re: Negotiation updates, and transparent neg.
Date Wed, 21 Aug 1996 07:03:25 GMT
> I disagree. Consider a browser (mine, for instance) which sends
> "Accept-Language: en-US". They should be able to speak plain English. The
> spec may be wrong on this point, I'm not sure.

No, the spec is right.  Language tags do not have the property that
people who understand x-y will also understand x -- the subtags are
assigned by linguistic relations that often have nothing to do with
how similar the languages are in practice. The browser would not send
"Accept-Language: en-US" -- it would send "Accept-Language: en" -- because
the user *is* capable of knowing whether or not they understand all
subtags of "en".

> Well, for one thing, this is with server-driven negotiation, not
> transparent. For the other thing, as Roy points out, Koen is a bit messed
> up. Actually, his draft does *not* exclude encoding. The way I understand
> it is this: The server is supposed to pre-cull encodings before going to
> the transparent negotiation phase, on the assumption that an
> Accept-Encoding: header (or lack thereof) is absolute. Therefore, if I
> have an unencoded variant, a gzipped one and a compressed one, I should
> pick the best one, based on Accept-Encoding (and set the Vary: header
> thus) and then use that in the Alternates: header, completely ignoring the
> others. This has some problems, but is how I understand Koen means it.

Some problems is an understatement -- it means that the proxy never learns
about alternates which are only available in the encoded form if the
first request comes from a browser that does not advertize acceptance
of that encoding.

The whole point of Alternates is to make all choices visible to the user
agent, such that the user can get what they want, when they want it, even
if the origin server is too smart for its own good. All this screwing around
to make proxies negotiate on behalf of the origin is just completely
missing the boat.


View raw message