WebDAV Collections Protocol - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

WebDAV Collections Protocol

Description:

3 new methods vs. Mandatory Extensions. Mandatory ... follow references into any collections to which they may refer ... Operations on Target Resources ... – PowerPoint PPT presentation

Number of Views:54
Avg rating:3.0/5.0
Slides: 20
Provided by: judys6
Category:

less

Transcript and Presenter's Notes

Title: WebDAV Collections Protocol


1
WebDAV Collections Protocol
  • Redmond, June 16, 1998

2
Referential Member
3
Strong Reference
4
Weak Reference
5
Creating Referential Members
  • M-PUT /whitehead/dav/ HTTP/1.1
  • Host www.ics.uci.edu
  • Man "DAVColl-headers"
  • Referential-Member spec08.ref
  • Ref-Target http//www.ics.uci.edu/i-d/draft-web
    dav-protocol-08.txt
  • Ref-Integrity T
  • Position After requirements.html
  • Content-Length 0

6
Mandatory Extensions in HTTP Rationale
  • HTTP servers ignore unrecognized headers
  • We want requests to fail if the server doesnt
    recognize DAV headers
  • PUT, MOVE, and COPY are affected
  • 3 new methods vs. Mandatory Extensions

7
Mandatory Extensions in HTTP Description
  • M- method prefix causes old servers to fail the
    request
  • Uniquely identify extension headers
  • Label the extension headers as mandatory or
    optional
  • Optionally assign namespace label to extension
    headers
  • Use extension headers as usual

8
Creating Referential Members (revised)
  • ADDREF /whitehead/dav/ HTTP/1.1
  • Host www.ics.uci.edu
  • Referential-Member spec08.ref
  • Ref-Target http//www.ics.uci.edu/i-d/draft-web
    dav-protocol-08.txt
  • Ref-Integrity T
  • Position After requirements.html
  • Content-Length 0

9
Deleting Referential Members
  • Use the HTTP DELETE method
  • No effect on target except for updates to its
    DAVrefsource property when a strong reference is
    deleted

10
Listing Collection Members
  • Use the DAV PROPFIND method
  • Listing will include both internal and
    referential members
  • If Depth infinity, the server SHOULD NOT (MUST
    NOT?) follow references into any collections to
    which they may refer

11
Other Operations on Referential Members
  • LOCK, PROPPATCH, MOVE, COPY affect the
    referential member, not its target resource
  • Use M-MOVE and M-COPY to create a strong
    reference at the destination
  • GET and PROPFIND retrieve the headers /
    properties of the referential member, not of its
    target resource

12
Other Operations on Referential Members (revised)
  • LOCK, PROPPATCH, MOVE, COPY affect the
    referential member, not its target resource
  • Use MOVE and COPY with the Ref-Integrity header
    to create a strong reference at the destination
  • GET and PROPFIND retrieve the headers /
    properties of the referential member, not of its
    target resource

13
Operations on Target Resources
  • Operations on targets have no effect on
    referential members except as needed to maintain
    referential integrity for strong references
  • MOVE on target causes a strong references
    DAVreftarget property to be updated
  • DELETE on target of a strong reference Server
    decides how to enforce referential integrity

14
Ordered Collections
15
Characteristics of Orderings
  • At most 1 ordering per collection
  • Client decides whether a collection is ordered
  • If a collection is ordered, each collection
    member belongs to the ordering exactly once
  • Only members of the collection can belong to its
    ordering
  • orderingtype SHOULD point to a resource that
    describes the semantics of the ordering

16
Manipulating Orderings
  • Retrieve the current DAVordering property with
    PROPFIND
  • Modify DAVordering with PROPPATCH
  • Use the Position header with M-PUT, M-MOVE, or
    M-COPY to insert a member into the ordering at
    the time it is added to the collection

17
Manipulating Orderings (revised)
  • Retrieve the current DAVordering property with
    PROPFIND
  • Modify DAVordering with PROPPATCH
  • Use the Position header with PUT, MOVE, or COPY
    to insert a member into the ordering at the time
    it is added to the collection

18
PROPPATCH Example
  • PROPPATCH /coll-1/ HTTP/1.1
  • Host www.foo.com
  • Content-Type text/xml
  • Content-Length xxxx
  • lt?xml version1.0 ?gt
  • lt?xmlnamespace nsDAV prefixD ?gt
  • ltDpropertyupdategt
  • ltDsetgt
  • ltDpropgt
  • ltDorderinggt
  • ltDorderingtypegt
  • lthrefgthttp//www.foo.com/semantics/s1.txtlt/h
    refgt
  • lt/Dorderingtypegt
  • lthrefgtmaplt/hrefgt
  • lthrefgthistorylt/hrefgt
  • lthrefgtculturelt/hrefgt
  • lt/Dorderinggt
  • lt/Dpropgt

19
Position Header Example
  • PUT /coll1/history HTTP/1.1
  • Host www.foo.com
  • Content-Type text/plain
  • Content-Length xxxx
  • Position After map
  • ltentity bodygt

20
Server Responsibilities
  • Remove href from ordering when member is removed
    from collection
  • Add href to ordering when member is added to
    collection
  • At requested position if Position header is used
  • At end of ordering otherwise
  • Verify values of DAVordering submitted with
    PROPPATCH
  • Respond to PROPFIND with ordered listing if
    collection is ordered

21
Creating an Ordered Collection (proposal)
  • Ordered header for use with MKCOL
  • Value is URI of ordering semantics
  • Example
  • MKCOL /collection1/ HTTP/1.1
  • Host www.foo.com
  • Ordered http//www.foo.com/semantics/s1.txt

22
Implementation Note (proposal)
  • Recommend that clients follow Mandatory
    Extensions specification when they want method to
    fail if server doesnt recognize ordering headers
  • Ordered header with MKCOL
  • Position header with PUT, MOVE, or COPY
  • Define URI for extension semantics
  • DAVOrderedCollectionHeaders

23
Issues
  • MOVE or COPY a collection that has referential
    members
  • MOVE or COPY an ordered collection
  • Let client choose whether Ref-Integrity, Ordered,
    and Position headers are optional or mandatory?
  • How to enforce referential integrity for requests
    to DELETE a target resource
  • Potential problems for ordering requests without
    transactions
  • PROPPATCH vs. headers for manipulating orderings?
    Or allow both?

24
Information
  • Draft protocol specification is at
  • http//www.ics.uci.edu/ejw/authoring/collection/d
    raft-ietf-webdav-collection-protocol-00.txt
  • Author can be reached at
  • slein_at_wrc.xerox.com
Write a Comment
User Comments (0)
About PowerShow.com