- From: Mark Nottingham <mnot@mnot.net>
- Date: Tue, 13 Nov 2007 16:14:01 +1100
- To: HTTP Working Group <ietf-http-wg@w3.org>
- Cc: "Roy T. Fielding" <fielding@gbiv.com>
Any other thoughts on this? It's a fairly substantial change. David B
suggested a few re-wordings, but I don't see agreement around those yet.
Personally -- there are a few editorial changes that I'd make, as the
proposal is a bit wordy;
- "in order to obtain a representation corresponding to the
response, be redirected again, or end with an error status" is
superfluous, as is "generally" and "by Cache-Control or Expires
header fields."
- "...transferred by the server over HTTP" seems clunky, as does
"follow-on", although I don't have any immediate suggestion for either.
Also, we seem to be implicitly dropping the note to implementers WRT
HTTP/1.0 support for 303. Are we confident that this is no longer a
problem?
Finally, 2616 makes it a SHOULD-level requirement that the Location
URI is a different URI. Are we dropping that explicitly? One easy fix
would be to change "The Location URI indicates a resource..." to "The
Location URI SHOULD indicate a different resource..."
Otherwise, it looks good to me. I've copied the original spec text
below for comparison.
On 14/07/2007, at 2:07 PM, Roy T. Fielding wrote:
>
> On Jul 13, 2007, at 1:38 AM, Julian Reschke wrote:
>> see discussion over at the W3C TAG mailing list (<http://
>> www.w3.org/mid/06EB9571-9EFE-42EF-833E-EB630D422227@gbiv.com>) and
>> <http://www.w3.org/Protocols/HTTP/1.1/rfc2616bis/draft-lafon-
>> rfc2616bis-latest.html#rfc.issue.cacheability-of-303>).
>
> My suggestion is to change the entire section to:
>
> ==============
> 10.3.4. 303 See Other
>
> The server directs the user agent to a different resource,
> indicated
> by a URI in the Location header field, that provides an indirect
> response to the original request. The user agent MAY perform a GET
> request on the URI in the Location field in order to obtain a
> representation corresponding to the response, be redirected again,
> or end with an error status. The Location URI is not a substitute
> reference for the originally requested resource.
>
> The 303 status is generally applicable to any HTTP method. It is
> primarily used to allow the output of a POST action to redirect
> the user agent to a selected resource, since doing so provides the
> information corresponding to the POST response in a form that
> can be separately identified, bookmarked, and cached independent
> of the original request.
>
> A 303 response to a GET request indicates that the requested
> resource does not have a representation of its own that can be
> transferred by the server over HTTP. The Location URI indicates a
> resource that is descriptive of the requested resource such that
> the follow-on representation may be useful without implying that
> that it adequately represents the previously requested resource.
> Note that answers to the questions of what can be represented, what
> representations are adequate, and what might be a useful
> description
> are outside the scope of HTTP and thus entirely determined by the
> resource owner(s).
>
> A 303 response SHOULD NOT be cached unless it is indicated as
> cacheable by Cache-Control or Expires header fields. Except for
> responses to a HEAD request, the entity of a 303 response SHOULD
> contain a short hypertext note with a hyperlink to the Location
> URI.
> ==============
>
Original text:
> 10.3.4 303 See Other
>
> The response to the request can be found under a different URI and
> SHOULD be retrieved using a GET method on that resource. This
> method exists primarily to allow the output of a POST-activated
> script to redirect the user agent to a selected resource. The new
> URI is not a substitute reference for the originally requested
> resource. The 303 response MUST NOT be cached, but the response to
> the second (redirected) request might be cacheable.
>
> The different URI SHOULD be given by the Location field in the
> response. Unless the request method was HEAD, the entity of the
> response SHOULD contain a short hypertext note with a hyperlink to
> the new URI(s).
>
> Note: Many pre-HTTP/1.1 user agents do not understand the 303
> status. When interoperability with such clients is a concern,
> the
> 302 status code may be used instead, since most user agents
> react
> to a 302 response as described here for 303.
--
Mark Nottingham http://www.mnot.net/
Received on Tuesday, 13 November 2007 05:17:17 UTC