Re: Review of new HTTPbis text for 303 See Other

On Jul 9, 2009, at 6:17 AM, J Ross Nicoll wrote:

> Roy T. Fielding wrote:
>
>>> That just seems plain false. A 303 does not indicate that something
>>> does not exist. It simply indicates that the server, for reasons  
>>> which
>>> may be entirely opaque and nobody is under any obligation to  
>>> explain,
>>> has decided to redirect the query elsewhere.
>>
>> No, we have other redirect codes for that.
>
> As I understand it, 301 (moved permanently), 302 (found) and 307 (not
> modified) all indicate a different location for the resource, never  
> for
> an alternative to it. 304 is "Not modified", and 305/6 are
> deprecated/reserved respectively. So, I don't think there is any other
> redirect code for "Instead of the resource you requested, please see
> this resource instead"...

The only reason for a server to say "see this other resource
instead" to a GET request is that the person who configured
the server knows that this other resource is not the same as
the requested resource (i.e., not a 301/302/307) and yet wants
the client directed to that resource because it is more responsive
to the client's request than responding with a 404 or 410.

The only way a server can be responsive to the client's original
GET request (i.e., not broken or lying) is if the 303 response
points to a resource that describes the originally requested
resource.  Any other result would be pointlessly random, which
would be silly because 302 is already provided for pointlessly
random redirects.

....Roy

Received on Thursday, 9 July 2009 23:16:29 UTC