I'd like to add a comment or two to this discussion.
First of all, the browser doesn't have to send its entire
Accept: list for every request. If the requested url happens
to be something like http://a.b.com/x.html, the chances of
this resource being, say, a JPEG are pretty slim it seems to me.
So the browser requests x.html, and while doing the layout it
comes across: <img src="b.gif"> So what is this? Do we need
to send a 2K Accept: list for this resource as well? Don't we
know before the request that this is most likely a GIF file?
Now, as much as I dislike suggesting it, perhaps one "fix"
for content negotiation is in the HTML itself, since filename
extensions such as ".gif" don't necessarily give the right
information especially when server alias mechanisms are taken
into account. Perhaps something like
<img src="c.xyz" mimetype="image/jpeg"> would give the browser
the information it needs to determine whether it can display
this resource, or what additional types it should request:
it might be the case that it doesn't support inline jpegs,
so it might ask for image/gif and image/whatever in the Accept:
request headers.
I guess the point is that if the browser can figure out more
information about the resources it is requesting (sounds like a loop)
beforehand, such as the hack suggested above, then it can
make more intelligent and suggestive (and efficient) requests
to servers.
-Russell Holt
holtrf@destinyusa.com
http://www.destinyusa.com/russ/
Destiny Software Corp.