Re: A broken browser

On Wed, 1 Jan 1997, M. Hedlund wrote:

> However, I disagree that the spec simply doesn't spell this out but does
> imply it (as you seem to suggest).  Section 3.9 says that q values merely
> indicate relative preference, rather than absolute quality.  Under that
> definition, q=0 would mean, "This is the least desirable media type of the
> media types listed in the Accept header."  Therefore, I interpret the
> current spec to say that a server is never required to send a 406 if the
> client sends _any_ q value with an available media type in the Accept
> header. 
> In other words, the only time a 406 should appear is if the client sends an
> Accept header without any listing of media types available to fulfill the
> request:
> 	- Browser sends Accept: text/html, image/gif
> 	- Server has image/jpeg only; responds with 406.
> Since most browsers send '*/*' as part of the Accept header, 406's should
> be extremely rare.

Yes. But it is my understanding that the spec does not define methods
of negotiation. As long as the server is careful to set the right
cache-controlling headers (in most cases, probably just Vary), the
server can decide what to send the browser however the heck it
wants. All the spec defines (and all it should define, IMHO), is the
format of Accept, the format of Vary:, the 406 response, etc..., but
it doesn't say how the server should interpret them (this is something
the transparent conneg drafts have done, but that's something

In other words, the server would be perfectly within its rights to
send 406 even if the browser sent "Accept: text/html;q=1.0" and the
server has a text/html variant. It'd be stupid behavior, but it's to

In this case, though, I think Apache is correct. The client sent
q=0.0, so obviously text/html is "not acceptable". If it really meant
"not perferable", it should send 0.001 (or anything less than the
other entries, really). How else are you going to say "I'll take any
text but HTML" than "Accept: text/*, text/html;q=0.0"?

Alexei Kosut <>      The Apache HTTP Server

Received on Wednesday, 1 January 1997 21:45:17 UTC