WebDAV Advanced Collections Protocol
42nd IETF, 27 August 1998
Jim Davis
These are the slides as presented at the WebDAV WG at the 42nd IETF in
Chicago by Jim Davis. These slides reflect corrections made during
discussion. The presentation included a design for direct references
that was created by two of the authors (Davis and Whitehead) during
the week. This design is not documented in the current ID.
Terminology
- Referential Resource: A resource that has no content of its own, but rather is a reference to another resource
- Ordinary Resource: A resource that is not a reference to another resource
- Target Resource: The resource referenced by a referential member of a collection
- Direct Reference: A reference that has the property that operations on it are passed through to its target
- Indirect Reference: A reference that has the property that operations on it do not affect its target
- Strong Reference: A reference whose referential integrity is guaranteed by the server
- Weak Reference: A reference whose referential integrity is not guaranteed by the server
Scope of This Specification
- Direct and weak indirect and references are supported
- Headers and properties are designed to be extensible
- Allow future support for strong references
Referential Resource
Has four properties
- resourcetype = dav:reference
- reftarget (new) = URL of target resource.
- reftype (new) = dav:direct or dav:indirect
- refintegrity (new) = dav:weak or dav:strong
New HTTP headers
New methods
New properties
- on reference resource:
- reftarget - URL of target resource.
- reftype - dav:direct or dav:indirect
- refintegrity - dav:weak or dav:strong
- on target resource:
- references - list of URLs of targets.
Operations on Indirect Reference
- Redirected:
- Affect reference:
- PROPPATCH, PROPFIND, DELREF, DELETE, COPY, MOVE, LOCK,
- Passed to target:
Operations on Direct Reference
- Redirected:
- Affect reference:
- DELREF, DELETE, COPY, MOVE
- Passed to target:
- GET*, HEAD*, PUT, POST, PROPFIND, PROPPATCH, LOCK
- *except Ref-Type and Ref-Target headers are added
Creating Referential Resources
[Request]
MKREF /~whitehead/dav/spec08.ref HTTP/1.1
Host: www.ics.uci.edu
Ref-Target: http://www.ics.uci.edu/i-d/draft-webdav-protocol-08.txt
Ref-Type: <dav:indirect>
[Response]
HTTP/1.1 201 Created
Deleting Referential Resources
[Request]
DELREF /~whitehead/dav/spec08.ref HTTP/1.1
Host: www.ics.uci.edu
[Response]
HTTP/1.1 200 OK
Operations on Target Resources
- Operations on targets of weak, indirect references have no effect on the referential resource
- Operations on targets of direct references:
- DELETE deletes all references
- MOVE updates ref-target of references
Security issue:
MOVE of target T to a new, secret place reveals location to reference R
Solution: COPY it, then DELETE.
Issues
- Owner of T should be able to prevent creation of direct references
- References should have distinct ACL from target.
- Cross-server reference acts like a proxy.
Ordered Collections
Not presented, for lack of time.
Information