W3C home > Mailing lists > Public > ietf-http-wg@w3.org > July to September 2009

Re: [httpbis] #81: Content Negotiation for media types

From: Mark Nottingham <mnot@mnot.net>
Date: Thu, 17 Sep 2009 13:40:00 +1000
Cc: "henrik@henriknordstrom.net Nordstrom" <henrik@henriknordstrom.net>, HTTP Working Group <ietf-http-wg@w3.org>
Message-Id: <A018D5BF-5D3C-443E-ACA8-4DCC8835DB69@mnot.net>
To: Larry Masinter <masinter@adobe.com>
Reopened, and +1

On 17/09/2009, at 11:27 AM, Larry Masinter wrote:

> Although http://trac.tools.ietf.org/wg/httpbis/trac/ticket/81
> is marked 'closed', Mark sent a strawman rewrite:
> http://lists.w3.org/Archives/Public/ietf-http-wg/2009JulSep/0521.html
>
> After review by Mark, here is a proposed rewrite:
>
>
> ===========================================================
> 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 represent the same information;
> for example, in different formats, languages, or using different
> charsets.
>
> HTTP clients may have different or variable capabilities,  
> characteristics
> or preferences which might influence which representation among
> those available from the server would be best for the server to
> deliver. For this reason, HTTP provides mechanisms for
> "content negotiation" -- a process of selecting a
> 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. In addition, systems
> also use an "active content" pattern, where the server returns
> active content which runs on the client and, based on client
> available parameters, selects additional resources to invoke.
>
> These patterns are all 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.
>
> The headers "accept:", "accept-language:" and "accept-charset:"
> are defined explicitly for content negotiation. In addition,
> many systems employ "User-Agent" based negotiation, where different
> content is delivered depending on the version of software employed.
> In practice, User-Agent based negotiation is fragile, because new
> clients are not recognized by the deployed servers or active content.
>
>
>
>


--
Mark Nottingham     http://www.mnot.net/
Received on Thursday, 17 September 2009 03:40:40 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 27 April 2012 06:51:10 GMT