Re: Content negotiation

M. Hedlund (
Tue, 7 Nov 1995 17:24:21 -0700

Okay, now we've all complained about content negotiation again. Where to
from here?

There are a couple of issues:

1. "I want my pages to look as good as possible in every browser." Okay,
you can produce as many versions of an HTML page as you want, but support
for that doesn't need to be in HTTP (beyond the user-agent header itself).
To the extent that this is a protocol issue, it should be handled by STYLE
SHEETS, not user-agent content-negotiation. What can browser authors do to
assist this process? Implement level 1 style sheets.

2. "I want to send JPEGs to every browser that supports them 'cause they're
smaller, and I don't want to have to keep track of which ua's do and don't
support them." This is a protocol issue, but the HTTP/1.1 draft has a
workable (if imperfect) solution already. What can browser authors do?
Well, implement it. To the extent that the participants in an HTTP
exchange only want to negotiate over Internet Media Types, you can probably
get by with Accept at least for now. Here are some suggestions:
- Prefer smaller filetypes to larger.
- Prefer filetypes your browser can display itself to those it must
send to a helper app.
- Prefer filetypes your browser must send to a helper app to those
it must save to disk.
- Let the user override all default values, preferably in variety
of ways including "just for this request."
- If you are using some new feature that might be considered a
media type, _give it a media type_.
- Give everything a meaningful quality value.

3. "I don't want to send forms-in-tables to browsers that will crash on
them...." [well, why not, it might encourage faster bugfixes...] "...nor do
I want to send an HTML tag from, say, a draft HTML standard to a browser
that doesn't yet recognize that tag." This is very questionably a protocol
issue. The question is, should HTTP content negotiation provide finer
granularity than Internet Media Types? In the first case, it is very
unlikely that the browser author will install an accept value that means
"my browser takes tables but crashes if there are forms in them." So the
second case is all that remains. Should we acknowledge that different
browsers will install tags in a piecemeal fashion, or should we not weigh
down the protocol with this issue? (One middle ground would be the server
Larry proposed, which already exists in part between Glenn Trewitt's
form-test database
<URL:> and David
Ornstein's Browser Caps database

If we could just see the system described in (2) above implemented in most
browsers, it would be a big relief. Or, we can repeat this whole
discussion six months from now! I look forward to it.

M. Hedlund <>