- From: Julian Reschke <julian.reschke@gmx.de>
- Date: Sun, 27 Sep 2009 14:08:17 +0200
- To: HTTP Working Group <ietf-http-wg@w3.org>
Hi,
we've got an old issue pending resolution with respect to totally
confusing language in the introduction of Content-Location (see old mail
quoted at the end and
<http://trac.tools.ietf.org/wg/httpbis/trac/ticket/136>).
The RFC2616 text was:
-- snip --
14.14 Content-Location
The Content-Location entity-header field MAY be used to supply the
resource location for the entity enclosed in the message when that
entity is accessible from a location separate from the requested
resource's URI. A server SHOULD provide a Content-Location for the
variant corresponding to the response entity; especially in the case
where a resource has multiple entities associated with it, and those
entities actually have separate locations by which they might be
individually accessed, the server SHOULD provide a Content-Location
for the particular variant which is returned.
-- snip --
Note the double SHOULD in the second half, one overlapping the other in
scope; more discussion about this is in the old mailing list thread
starting at
<http://lists.w3.org/Archives/Public/ietf-http-wg/2008JulSep/0259.html>.
We recently rephrased the header field introductions, and Part 3 now states:
-- snip --
5.7. Content-Location
The "Content-Location" entity-header field is used to supply a URI
for the entity in the message when it is accessible from a location
separate from the requested resource's URI.
A server SHOULD provide a Content-Location for the variant
corresponding to the response entity, especially in the case where a
resource has multiple entities associated with it, and those entities
actually have separate locations by which they might be individually
accessed, the server SHOULD provide a Content-Location for the
particular variant which is returned.
-- snip --
(Note the first sentence was rewritten, and a paragraph break was inserted)
We'd like to reduce this to:
-- snip --
5.7. Content-Location
The "Content-Location" entity-header field is used to supply a URI
for the entity in the message when it is accessible from a location
separate from the requested resource's URI.
A server SHOULD provide a Content-Location for the variant
corresponding to the response entity, especially in the case where a
resource has multiple entities associated with it and those entities
actually have separate locations by which they might be individually
accessed.
-- snip --
...which essentially removes the SHOULD for the case where there's only
one entity - I think that reflects common sense.
(see also
<http://trac.tools.ietf.org/wg/httpbis/trac/attachment/ticket/136/136.diff>)
Best regards, Julian
Julian Reschke wrote:
>
> Hi,
>
> I was staring at the definition of Content-Language, and trying to
> figure out how to rephrase it avoiding the term "variant" (as discussued
> in <http://wiki.tools.ietf.org/wg/httpbis/trac/ticket/109>):
>
> RFC 2616 says:
>
> The Content-Location entity-header field MAY be used to supply the
> resource location for the entity enclosed in the message when that
> entity is accessible from a location separate from the requested
> resource's URI. A server SHOULD provide a Content-Location for the
> variant corresponding to the response entity; especially in the case
> where a resource has multiple entities associated with it, and those
> entities actually have separate locations by which they might be
> individually accessed, the server SHOULD provide a Content-Location
> for the particular variant which is returned. --
> <http://tools.ietf.org/html/rfc2616#section-14.14>
>
> Comments:
>
> - the first "MAY" seems to be useless and actually distracting ("may be
> used", "can be used" or "is used" would be just fine)
>
> - "...when that entity is accessible from a location separate from the
> requested resource's URI" -- can this be simplified to "when that entity
> is accessible from a location separate from the request-URI"? Or am I
> missing something here?
>
> - then it goes on saying server "SHOULD" return the header, but then
> "SHOULD return especially" in some special cases -- but there was
> already an unconditional SHOULD without that condition.
>
> Part of this confusion seems to be the result of trying to BCP14fy what
> RFC2068 said (which had the first "SHOULD" in lower case).
>
> So, looking at RFC 2068:
>
> The Content-Location entity-header field may be used to supply the
> resource location for the entity enclosed in the message. In the case
> where a resource has multiple entities associated with it, and those
> entities actually have separate locations by which they might be
> individually accessed, the server should provide a Content-Location
> for the particular variant which is returned. In addition, a server
> SHOULD provide a Content-Location for the resource corresponding to
> the response entity. --
> <http://tools.ietf.org/html/rfc2068#section-14.15>
>
> This looks a bit better, except for the last sentence:
>
> "In addition, a server SHOULD provide a Content-Location for the
> resource corresponding to the response entity."
>
> ...which I frankly do not understand -- what does it say what hasn't
> been said before?
>
> So if I had to rewrite this I would make it just:
>
> The Content-Location entity-header field may be used to supply the
> resource location for the entity enclosed in the message. In the case
> where a resource has multiple entities associated with it, and those
> entities actually have separate locations by which they might be
> individually accessed, the server SHOULD provide a Content-Location
> for the particular variant which is returned.
>
> (BCP14fying the should, dropping the last sentence)
>
> Feedback appreciated,
>
> Julian
>
>
>
>
>
Received on Sunday, 27 September 2009 12:09:00 UTC