GET on a reference

In Redmond, I brought up the issue of what happens when a
non-DAV-aware browser tries to view content containing
referential members; we were unable to agree on an answer in
realtime, so I took on an action item to propose a feasible
mechanism.

My proposal is that GET, HEAD, PUT, or POST on a reference
should return 302 (Moved Temporarily), with the Location:
header indicating the target URI of the reference.  It would
also include some DAV-specific header, indicating that the
resource is a reference, so that a DAV-aware client would
understand that the redirection was being done through DAV
(as opposed to some server-specific configuration).  The
most obvious way would be to provide a Ref-Target: header
with the same target URI as Location:, but such duplication
would introduce complications (what happens if the two URIs
disagree?), as well as wasting a smidgen of bandwidth.  A
better way would be to use a header which is present if, and
only if, the resource is a reference--e.g., Ref-Integrity:.
(We could also just have the DAV client check the resource's
DAV:resourcetype property, but that would take an extra
round trip.)

So, for example, if http://www.example.com/foo/bar.ref is a
weak reference to http://www.example.com/baz.html, we might
have an HTTP exchange like this:

GET /foo/bar.ref HTTP/1.1
Host: www.example.com

HTTP/1.1 302 Moved Temporarily
Location: http://www.example.com/baz.html
Ref-Integrity: F

One complication is that clients are not supposed to
automatically follow the Location: field without telling the
user, unless the method is GET or HEAD.  This means that
PUTting or POSTing against a referential member won't be
totally transparent; but it'll still be possible.

More generally, I further propose that we add a requirement
to draft-ietf-webdav-collection-reqts-01.txt, specifying
that, whenever possible, a collection created via DAV should
be readable to a non-DAV-aware HTTP/1.x browser.  Without
this, testing and deployment of a corpus developed with DAV
will become a hairy problem; all the documents would have to
be staged from the DAV server to a test server.

--
/====================================================================\
|John (Francis) Stracke    |My opinions are my own.|S/MIME supported |
|Software Retrophrenologist|=========================================|
|Netscape Comm. Corp.      | Cogito ergo Spud.  (I think, therefore  |
|francis@netscape.com      |  I yam.)                                |
\====================================================================/
New area code for work number: 650

Received on Thursday, 25 June 1998 13:55:18 UTC