- From: Gavin Thomas Nicol <gtn@rbii.com>
- Date: Thu, 9 Jan 2003 05:58:16 -0500
- To: www-tag@w3.org
On Thursday 09 January 2003 12:32 am, Mark Nottingham wrote: > Conneg (to be precise, server-driven negotiation, which seems to be most > relevent to this discussion) is IMO currently hobbled by two things; > > * browser implementations - don't want to spew out all of the media types > they support, and they misuse the wildcard (as noted in CUAP [1]). > > * server implementations - generally make it difficult to configure conneg > (e.g., expressing priority order, applying to multiple resources, etc.) Agreed. > Like Simon, I'm inclined to treat it as a pillar of the Web architecture, > not something to be swept under the carpet. As I noted earlier, I have been a long-term champion of negotiation... but from my experience with hundreds of customers, with some very significant web sites, I don't see the widespread use of content negotiation you see. In all honesty, in all the customers I've ever dealt with, I can remember very few that used content negotiation. Even those that wanted roughly the same kind of functionality (URI's with multiple language representations, for example) used profiles to drive dynamic composition rather than content negotiation, because in many cases the representations may be slightly different based on the profile (i.e. the profile may disallow certain content). The main failure within the current world of content negotiation is that you have no way to say "I want a specific representation of a resource" from the application level. For example, if I do this: <a href="foo.html">foo.html</a> there is an implicit requirement that the representation returned be in text/html (and of course, entities in XML are even more fragile), but I have no way of *forcing* that at the application level. So despite all the possible (if underused) benefits of negotiation in terms of robustness, it also engenders a degree of fragility. Now there are two ways to deal with the problem: really look to see if content negotiation is *really* alive and well (my experience is that it is not used widely, your mileage may vary), and if not, to toss it. The other way is to bridge the gap between the application and protocol such that the application has *finer* control over the returned representations. About the closest thing I can think of to the latter is the "charset" attribute on the <A> element in HTML. Though it's purpose is really somewhat different, it is used to specify metadata about the representation of the resource being linked to.
Received on Thursday, 9 January 2003 05:59:57 UTC