- From: Mark Nottingham <mnot@mnot.net>
- Date: Mon, 17 Aug 2009 16:02:05 +1000
- To: Larry Masinter <masinter@adobe.com>
- Cc: "henrik@henriknordstrom.net Nordstrom" <henrik@henriknordstrom.net>, HTTP Working Group <ietf-http-wg@w3.org>
[ re-sending with correct list address ] Straw-man: ---8<--- HTTP responses include a representation which contains information for interpretation, whether by a human user or for further processing. Often, there are different ways to serialise the same information into a representation; for example, in different formats, languages, or encodings. Since different agents have different preferences regarding the selection of the "best" representation of a resource, due to their capabilities (e.g., formats that can be rendered, languages that are understood), it is necessary for HTTP to provide mechanisms for "content negotiation" -- the process of selecting the best representation of a given resource, when more than one is available. This specification defines two patterns of content negotiation; "server-driven", where the server selects the representation based upon the client's stated preferences, and "agent-driven" negotiation, where the server provides a list of representations for the client to choose from, based upon their metadata. Both patterns are widely used, and have trade-offs in applicability and practicality. In particular, when the number of preferences or capabilities to be expressed by a client are large (such as when many different formats are supported by a user-agent), server-driven negotiation becomes unwieldy, and may not be appropriate. Conversely, when the number of representations to choose from is very large, agent- driven negotiation may not be. Note that caches can be instructed on how to serve server-negotiated responses using the Vary header [ref], although this mechanism is not richly descriptive. --->8--- I'm not user what to say about conneg based upon User-Agent... On 16/08/2009, at 5:52 AM, Larry Masinter wrote: > I dropped this action item, but I thought that mnot had agreed > to pick it up, rather than let it drop. > > The wording right now is: > > Most HTTP responses include an entity which contains information for > interpretation by a human user. Naturally, it is desirable to supply > the user with the "best available" entity corresponding to the > request. Unfortunately for servers and caches, not all users have > the same preferences for what is "best," and not all user agents are > equally capable of rendering all entity types. For that reason, HTTP > has provisions for several mechanisms for "content negotiation" -- > the process of selecting the best representation for a given response > when there are multiple representations available. > > Note: This is not called "format negotiation" because the > alternate representations may be of the same media type, but use > different capabilities of that type, be in different languages, > etc. > > > I'd want to say a couple of things in this section. > > * I'd want to point out the use pattern of agent-driven negotiation > where the processing happens by the HTTP response being active > content which does selection or adaptation itself -- this is > a common use pattern, and CSS media queries and other kinds of > "active" content often move content-type negotiation out of > the HTTP realm. > > * I think it's important to point out the widespread use of > "USER AGENT" heuristics as a way of determining client capabilities. > > * I'd want to point out that content negotiation is used for > other purposes than selecting the best content for presentation > to a human user. > > I had this action item for a year and didn't wind up with better > text. I'm willing to work with someone else on this but my authoring > capabilities aren't up for it. > > > > > -----Original Message----- > From: httpbis [mailto:trac@tools.ietf.org] > Sent: Wednesday, July 29, 2009 6:11 AM > To: LMM@acm.org; henrik@henriknordstrom.net; mnot@pobox.com > Subject: Re: [httpbis] #81: Content Negotiation for media types > > #81: Content Negotiation for media types > ---------------------------- > +----------------------------------------------- > Reporter: mnot@pobox.com | Owner: LMM@acm.org > Type: design | Status: new > Priority: | Milestone: unassigned > Component: p3-payload | Version: 00-draft > Severity: | Resolution: > Keywords: | Origin: http://www.alvestrand.no/pipermail/ietf-types/2006-April/001707.html > ---------------------------- > +----------------------------------------------- > > Comment(by henrik@henriknordstrom.net): > > I disagree that content negotiation does not work in general. Sure > it has > limitations when it comes to wide range properties like Content-Type > negotiation, but if one considers that clients in most cases MAY > retry the > request with a different Accept setting if the result they got the > first > time wasn't acceptable it still works out quite well even for Accept > /Content-Encoding. Remember that Accept can include negative selectors > saying "I do NOT want this" (q=0) as well as positive ones of varying > degrees (q>0). > > -- > Ticket URL: <http://trac.tools.ietf.org/wg/httpbis/trac/ticket/81#comment:4 > > > httpbis <http://tools.ietf.org/wg/httpbis/> > -- Mark Nottingham http://www.mnot.net/
Received on Monday, 17 August 2009 06:02:55 UTC