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

AltStyle によって変換されたページ (->オリジナル) /