- From: Mark Nottingham <mnot@mnot.net>
- Date: Thu, 17 Sep 2009 13:40:00 +1000
- To: Larry Masinter <masinter@adobe.com>
- Cc: "henrik@henriknordstrom.net Nordstrom" <henrik@henriknordstrom.net>, HTTP Working Group <ietf-http-wg@w3.org>
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 UTC