200 vs. 303 vs. ??? (was Re: Raw minutes of meeting 2007.11.27)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

First, let's be careful about the preconditions for the 200 vs. 303
question.

1) A client issues an HTTP GET request for a URI *U* which identifies
   a resource *T* to a server *S*

2) *S* generates one of two responses:

   2a)
       HTTP/1.1 200 OK
       Content-type: xxx
       . . .

       [a representation *R*]

   2b) HTTP/1.1 303 See Other
       . . .
       Location: [a URI *Uprime*]

       A further GET request is issued, for *Uprime*, to which the
       response is

       HTTP/1.1 200 OK
       Content-type: yyy
       . . .

       [a representation *Rprime*]
       

 * What can you infer in case (2a)?

   *R* is a representation of the resource *C* identified by *U*.

 * What can you infer in case (2b)?

   *Rprime* is a representation of *Cprime*, the resource identified
   by *Uprime*.  *Rprime* is _not_ a representation of *C*.

That's as far as we can go without going beyond 2616.  Note in
particular that we absolutely _cannot_ infer from a 303 that the URI
in the Location header of the response identifies a description of or
metadata about the resource identified by the original URI.  It's
perfectly possible, indeed likely, that there are plenty of uses of
303 on the Web today which do not admit that interpretation, and
there's no way to rule out the appearance of URIs which provoke such
responses as e.g. the subjects of SW sentences.

To get something stronger than the negative conclusion which 303 gives
us, I think we should look seriously at asking for a new response code
in the new HTTP RFC:  Either a 207, meaning explicitly "The
representation returned herewith represents a description of the
resource identified by the requested URI (i.e. it is _not_ a
representation of the resource itself)", or a 308, meaning explicitly
"No representation of the resource identified by the requested URI is
available.  The accompanying Location response header gives a URI
which identifies a description of that resource."

The 207 approach has the advantage that it does not require two
round-trips.  The 308 approach has the advantage that it provides a
URI for the description.  We _could_ mandate the provision of a
Content-Location response header when a 207 is given, but that is I
guess a bit weird. . .

ht
- -- 
 Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
                     Half-time member of W3C Team
    2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
            Fax: (44) 131 650-4587, e-mail: ht@inf.ed.ac.uk
                   URL: http://www.ltg.ed.ac.uk/~ht/
[mail really from me _always_ has this .sig -- mail without it is forged spam]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)

iD8DBQFHTU2qkjnJixAXWBoRAuc/AJ9sWFkeX1Y8as8IYRUQkPz7adGSkACcCXg4
diACUJowl1woi0IQ5cZWdUg=
=DdEo
-----END PGP SIGNATURE-----

Received on Wednesday, 28 November 2007 11:15:10 UTC