- From: Yves Lafon <ylafon@w3.org>
- Date: Thu, 13 May 2010 18:24:39 -0400 (EDT)
- To: "Houghton,Andrew" <houghtoa@oclc.org>
- cc: ietf-http-wg@w3.org
On Thu, 13 May 2010, Houghton,Andrew wrote:
> The purpose of this message is twofold: 1) get feedback from the WG and
> others, and 2) raise the issue for possible wording changes to RFC 2616,
> section 14.14 Content-Location.
>
> The issue in question is the wording in RFC 2616, section 14.14
> Content-Location. Some people in our organization interpret this section
> to mean: "the Content-Location header signifies that content negotiation
> has taken place and the user agent will expect that the provided URI
> will always get them to the resource returned in the entity of the
> message." Other people in our organization interpret this section in a
> broader context: "the Content-Location header establishes a relationship
> between the requested URI and a URI of the resource returned in the
> entity of the message." As you probably have guessed this debate is
> having a paralyzing affect on our projects.
>
> The former camp (FC) believes that the Content-Location header can
> *only* be used in the context of content negotiation. The latter camp
> (LC) believes that the Content-Location header can be used for other use
> case scenarios besides content negotiation. The issue of whether or not
> the Content-Location header is exclusively used for content negotiation
> has to do with the second sentence in section 14.14.
CL is not linked to conneg, for example see this:
GET /news/latest HTTP/1.1
Host: www.example.com
[..]
HTTP/1.1 200 OK
Content-Type: text/html
Content-Location: /news/newsitem-20100514.html
This is not conneg, and CL is giving useful extra information.
> From my perspective, after reading section 14.14, it seems to me that
> the first sentence gives the scope of the header which does not appear
> to be limited to content negotiation. The second sentence seems to me
> to give a specific use case where it is recommended that an implementer
> provide a Content-Location header. Consider the following use cases:
>
> 1) A GET is done on a resource URI with one or more Accept* headers. The
> server responds and includes a Content-Location header corresponding to
> the resource returned in the entity of the message.
The fact that the request has Accept* headers does not imply that conneg
is used to generate the response, the only indication that conneg occured
is the presence of the Vary: header in the response.
> 2) A GET is done on a resource URI with no Accept* headers. The server
> is a proxy which retrieves the resource from a remote location. The
> server responds with the entity containing the remote resource and a
> Content-Location header containing the URI of the remote resource.
What do you mean by proxy here? The scenario looks more like an aggregator
or a gateway, rather than an HTTP proxy.
> 3) A GET is done on a resource URI with no Accept* headers. The server
> accesses a backend data store whose resources are identified with either
> HTTP scheme URIs or URN scheme URIs. The server returns the resource
> from the data store and a Content-Location header containing the URI
> used by the data store to identify the resource under its management.
If it is useful, then sure the server can always point to a specific URI
in CL, it is a server choice anyway.
> 4) A GET is done on a resource URI with no Accept* headers. The resource
> URI is a variant representation of a generic resource. This scenario is
> described in the W3C TAG Finding 1 November 2006 [1], see [2] for a
> diagram of the scenario. For argument sake lets choose the bubble
> "MobileEnglish" as the resource URI that the GET was done on. The
> server responds with a Content-Location header to the URI for the bubble
> "GenericGeneric". The TAG Finding describes this in the context of HTML
> linking which is only specific to its media type however, this can be
> accomplished (the LC interpretation) at the HTTP protocol level by using
> the Content-Location header to provide a media type agnostic mechanism.
> This use case, mapped to the HTTP protocol, is described in section 4
> bullet 2 of the TAG finding: "given one of the alternatives for a
> resource, ensure that one can reach the corresponding generic resource
> by traversing a contained hyperlink". Use case (1) above, mapped to the
> HTTP protocol, is described in section 4 bullet 2 of the TAG finding:
> "When creating a generic resource with multiple alternatives, encode
> hyperlinks to the available alternatives with the generic resource".
>
> Both camps agree that use case (1) should include a Content-Location
> header in the response. What about use cases (2-4)? Do those use cases
> fall within the letter and spirit of RFC 2616? Thanks in advance for
> helping clarify this issue.
>
Also take a look at the definition of Content-Location at:
http://tools.ietf.org/html/draft-ietf-httpbis-p3-payload-09#section-5.7
>
> Andy.
>
> [1] <http://www.w3.org/2001/tag/doc/alternatives-discovery.html>
> [2] <http://www.w3.org/2001/tag/doc/alternatives-discovery.html#id2269389>
>
>
--
Baroula que barouleras, au tiƩu toujou t'entourneras.
~~Yves
Received on Thursday, 13 May 2010 22:24:42 UTC