diff options
Diffstat (limited to 'vendor/sabre/dav/docs/rfc5689.txt')
-rw-r--r-- | vendor/sabre/dav/docs/rfc5689.txt | 675 |
1 files changed, 0 insertions, 675 deletions
diff --git a/vendor/sabre/dav/docs/rfc5689.txt b/vendor/sabre/dav/docs/rfc5689.txt deleted file mode 100644 index bce3cfc89..000000000 --- a/vendor/sabre/dav/docs/rfc5689.txt +++ /dev/null @@ -1,675 +0,0 @@ - - - - - - -Network Working Group C. Daboo -Request for Comments: 5689 Apple Inc. -Updates: 4791, 4918 September 2009 -Category: Standards Track - - - Extended MKCOL for Web Distributed Authoring and Versioning (WebDAV) - -Abstract - - This specification extends the Web Distributed Authoring and - Versioning (WebDAV) MKCOL (Make Collection) method to allow - collections of arbitrary resourcetype to be created and to allow - properties to be set at the same time. - -Status of This Memo - - This document specifies an Internet standards track protocol for the - Internet community, and requests discussion and suggestions for - improvements. Please refer to the current edition of the "Internet - Official Protocol Standards" (STD 1) for the standardization state - and status of this protocol. Distribution of this memo is unlimited. - -Copyright Notice - - Copyright (c) 2009 IETF Trust and the persons identified as the - document authors. All rights reserved. - - This document is subject to BCP 78 and the IETF Trust's Legal - Provisions Relating to IETF Documents - (http://trustee.ietf.org/license-info) in effect on the date of - publication of this document. Please review these documents - carefully, as they describe your rights and restrictions with respect - to this document. Code Components extracted from this document must - include Simplified BSD License text as described in Section 4.e of - the Trust Legal Provisions and are provided without warranty as - described in the BSD License. - - This document may contain material from IETF Documents or IETF - Contributions published or made publicly available before November - 10, 2008. The person(s) controlling the copyright in some of this - material may not have granted the IETF Trust the right to allow - modifications of such material outside the IETF Standards Process. - Without obtaining an adequate license from the person(s) controlling - the copyright in such materials, this document may not be modified - outside the IETF Standards Process, and derivative works of it may - - - - - -Daboo Standards Track [Page 1] - -RFC 5689 Extended MKCOL for WebDAV September 2009 - - - not be created outside the IETF Standards Process, except to format - it for publication as an RFC or to translate it into languages other - than English. - -Table of Contents - - 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 2. Conventions Used in This Document . . . . . . . . . . . . . . 3 - 3. WebDAV Extended MKCOL . . . . . . . . . . . . . . . . . . . . 4 - 3.1. Extended MKCOL Support . . . . . . . . . . . . . . . . . . 5 - 3.1.1. Example: Using OPTIONS for the Discovery of - Support for Extended MKCOL . . . . . . . . . . . . . . 5 - 3.2. Status Codes . . . . . . . . . . . . . . . . . . . . . . . 5 - 3.3. Additional Precondition for Extended MKCOL . . . . . . . . 5 - 3.4. Example: Successful Extended MKCOL Request . . . . . . . . 6 - 3.5. Example: Unsuccessful Extended MKCOL Request . . . . . . . 6 - 4. Using Extended MKCOL as an Alternative for MKxxx Methods . . . 8 - 4.1. MKCALENDAR Alternative . . . . . . . . . . . . . . . . . . 8 - 4.1.1. Example: Using MKCOL Instead of MKCALENDAR . . . . . . 8 - 5. XML Element Definitions . . . . . . . . . . . . . . . . . . . 10 - 5.1. mkcol XML Element . . . . . . . . . . . . . . . . . . . . 10 - 5.2. mkcol-response XML Element . . . . . . . . . . . . . . . . 10 - 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 - 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 11 - 8. Normative References . . . . . . . . . . . . . . . . . . . . . 11 - - - - - - - - - - - - - - - - - - - - - - - - - - -Daboo Standards Track [Page 2] - -RFC 5689 Extended MKCOL for WebDAV September 2009 - - -1. Introduction - - WebDAV [RFC4918] defines the HTTP [RFC2616] method MKCOL. This - method is used to create WebDAV collections on the server. However, - several WebDAV-based specifications (e.g., CalDAV [RFC4791]) define - "special" collections -- ones that are identified by additional - values in the DAV:resourcetype property assigned to the collection - resource or by other means. These "special" collections are created - by new methods (e.g., MKCALENDAR). The addition of a new MKxxx - method for each new "special" collection adds to server complexity - and is detrimental to overall reliability due to the need to make - sure intermediaries are aware of these methods. - - This specification defines an extension to the WebDAV MKCOL method - that adds a request body allowing a client to specify WebDAV - properties to be set on the newly created collection or resource. In - particular, the DAV:resourcetype property can be used to create a - "special" collection; alternatively, other properties can be used to - create a "special" resource. This avoids the need to invent new - MKxxx methods. - -2. Conventions Used in This Document - - The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", - "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this - document are to be interpreted as described in [RFC2119]. - - This document uses XML DTD fragments (Section 3.2 of - [W3C.REC-xml-20081126]) as a purely notational convention. WebDAV - request and response bodies cannot be validated by a DTD due to the - specific extensibility rules defined in Section 17 of [RFC4918] and - due to the fact that all XML elements defined by this specification - use the XML namespace name "DAV:". In particular: - - 1. Element names use the "DAV:" namespace. - - 2. Element ordering is irrelevant unless explicitly stated. - - 3. Extension elements (elements not already defined as valid child - elements) may be added anywhere, except when explicitly stated - otherwise. - - 4. Extension attributes (attributes not already defined as valid for - this element) may be added anywhere, except when explicitly - stated otherwise. - - - - - - -Daboo Standards Track [Page 3] - -RFC 5689 Extended MKCOL for WebDAV September 2009 - - - When an XML element type in the "DAV:" namespace is referenced in - this document outside of the context of an XML fragment, the string - "DAV:" will be prefixed to the element type. - - This document inherits, and sometimes extends, DTD productions from - Section 14 of [RFC4918]. - -3. WebDAV Extended MKCOL - - The WebDAV MKCOL request is extended to allow the inclusion of a - request body. The request body is an XML document containing a - single DAV:mkcol XML element as the root element. The Content-Type - request header MUST be set appropriately for an XML body (e.g., set - to "text/xml" or "application/xml"). XML-typed bodies for an MKCOL - request that do not have DAV:mkcol as the root element are reserved - for future usage. - - One or more DAV:set XML elements may be included in the DAV:mkcol XML - element to allow setting properties on the collection as it is - created. In particular, to create a collection of a particular type, - the DAV:resourcetype XML element MUST be included in a DAV:set XML - element and MUST specify the expected resource type elements for the - new resource, which MUST include the DAV:collection element that - needs to be present for any WebDAV collection. - - As per the PROPPATCH method (Section 9.2 of [RFC4918]), servers MUST - process any DAV:set instructions in document order (an exception to - the normal rule that ordering is irrelevant). If any one instruction - fails to execute successfully, all instructions MUST fail (i.e., - either all succeed or all fail). Thus, if any error occurs during - processing, all executed instructions MUST be undone and a proper - error result returned. Failure to set a property value on the - collection MUST result in a failure of the overall MKCOL request -- - i.e., the collection is not created. - - The response to an extended MKCOL request MUST be an XML document - containing a single DAV:mkcol-response XML element, which MUST - contain DAV:propstat XML elements with the status of each property - when the request fails due to a failure to set one or more of the - properties specified in the request body. The server MAY return a - response body in the case where the request is successful, indicating - success for setting each property specified in the request body. - When an empty response body is returned with a success request status - code, the client can assume that all properties were set. - - In all other respects, the behavior of the extended MKCOL request - follows that of the standard MKCOL request. - - - - -Daboo Standards Track [Page 4] - -RFC 5689 Extended MKCOL for WebDAV September 2009 - - -3.1. Extended MKCOL Support - - A server supporting the features described in this document MUST - include "extended-mkcol" as a field in the DAV response header from - an OPTIONS request on any URI that supports use of the extended MKCOL - method. - -3.1.1. Example: Using OPTIONS for the Discovery of Support for Extended - MKCOL - - >> Request << - - OPTIONS /addressbooks/users/ HTTP/1.1 - Host: addressbook.example.com - - >> Response << - - HTTP/1.1 200 OK - Allow: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, COPY, MOVE - Allow: MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, REPORT, ACL - DAV: 1, 2, 3, access-control, extended-mkcol - Date: Sat, 11 Nov 2006 09:32:12 GMT - Content-Length: 0 - -3.2. Status Codes - - As per Section 9.3.1 of [RFC4918]. - -3.3. Additional Precondition for Extended MKCOL - - WebDAV ([RFC4918], Section 16) defines preconditions and - postconditions for request behavior. This specification adds the - following precondition for the extended MKCOL request. - - Name: valid-resourcetype - - Namespace: DAV: - - Use with: Typically 403 (Forbidden) - - Purpose: (precondition) -- The server MUST support the specified - resourcetype value for the specified collection. - - - - - - - - - -Daboo Standards Track [Page 5] - -RFC 5689 Extended MKCOL for WebDAV September 2009 - - -3.4. Example: Successful Extended MKCOL Request - - This example shows how the extended MKCOL request is used to create a - collection of a fictitious type "special-resource". The response - body is empty as the request completed successfully. - - >> Request << - - MKCOL /home/special/ HTTP/1.1 - Host: special.example.com - Content-Type: application/xml; charset="utf-8" - Content-Length: xxxx - - <?xml version="1.0" encoding="utf-8" ?> - <D:mkcol xmlns:D="DAV:" - xmlns:E="http://example.com/ns/"> - <D:set> - <D:prop> - <D:resourcetype> - <D:collection/> - <E:special-resource/> - </D:resourcetype> - <D:displayname>Special Resource</D:displayname> - </D:prop> - </D:set> - </D:mkcol> - - >> Response << - - HTTP/1.1 201 Created - Cache-Control: no-cache - Date: Sat, 11 Nov 2006 09:32:12 GMT - -3.5. Example: Unsuccessful Extended MKCOL Request - - This example shows an attempt to use the extended MKCOL request to - create a collection of a fictitious type "special-resource", which is - not actually supported by the server. The response body shows that - an error occurred specifically with the DAV:resourcetype property. - - - - - - - - - - - - -Daboo Standards Track [Page 6] - -RFC 5689 Extended MKCOL for WebDAV September 2009 - - - >> Request << - - MKCOL /home/special/ HTTP/1.1 - Host: special.example.com - Content-Type: application/xml; charset="utf-8" - Content-Length: xxxx - - <?xml version="1.0" encoding="utf-8" ?> - <D:mkcol xmlns:D="DAV:" - xmlns:E="http://example.com/ns/"> - <D:set> - <D:prop> - <D:resourcetype> - <D:collection/> - <E:special-resource/> - </D:resourcetype> - <D:displayname>Special Resource</D:displayname> - </D:prop> - </D:set> - </D:mkcol> - - >> Response << - - HTTP/1.1 403 Forbidden - Cache-Control: no-cache - Date: Sat, 11 Nov 2006 09:32:12 GMT - Content-Type: application/xml; charset="utf-8" - Content-Length: xxxx - - <?xml version="1.0" encoding="utf-8" ?> - <D:mkcol-response xmlns:D="DAV:"> - <D:propstat> - <D:prop> - <D:resourcetype/> - </D:prop> - <D:status>HTTP/1.1 403 Forbidden</D:status> - <D:error><D:valid-resourcetype /></D:error> - <D:responsedescription>Resource type is not - supported by this server</D:responsedescription> - </D:propstat> - <D:propstat> - <D:prop> - <D:displayname/> - </D:prop> - <D:status>HTTP/1.1 424 Failed Dependency</D:status> - </D:propstat> - </D:mkcol-response> - - - - -Daboo Standards Track [Page 7] - -RFC 5689 Extended MKCOL for WebDAV September 2009 - - -4. Using Extended MKCOL as an Alternative for MKxxx Methods - - One of the goals of this extension is to eliminate the need for other - extensions to define their own variant of MKCOL to create the special - collections they need. This extension can be used as an alternative - to existing MKxxx methods in other extensions as detailed below. If - a server supports this extension and the other extension listed, then - the server MUST support use of the extended MKCOL method to achieve - the same result as the MKxxx method of the other extension. - -4.1. MKCALENDAR Alternative - - CalDAV defines the MKCALENDAR method to create a calendar collection - as well as to set properties during creation (Section 5.3.1 of - [RFC4791]). - - The extended MKCOL method can be used instead by specifying both DAV: - collection and CALDAV:calendar-collection XML elements in the DAV: - resourcetype property, set during the extended MKCOL request. - -4.1.1. Example: Using MKCOL Instead of MKCALENDAR - - The first example below shows an MKCALENDAR request containing a - CALDAV:mkcalendar XML element in the request body and returning a - CALDAV:mkcalendar-response XML element in the response body. - - >> MKCALENDAR Request << - - MKCALENDAR /home/lisa/calendars/events/ HTTP/1.1 - Host: calendar.example.com - Content-Type: application/xml; charset="utf-8" - Content-Length: xxxx - - <?xml version="1.0" encoding="utf-8" ?> - <C:mkcalendar xmlns:D="DAV:" - xmlns:C="urn:ietf:params:xml:ns:caldav"> - <D:set> - <D:prop> - <D:displayname>Lisa's Events</D:displayname> - </D:prop> - </D:set> - </C:mkcalendar> - - - - - - - - - -Daboo Standards Track [Page 8] - -RFC 5689 Extended MKCOL for WebDAV September 2009 - - - >> MKCALENDAR Response << - - HTTP/1.1 201 Created - Cache-Control: no-cache - Date: Sat, 11 Nov 2006 09:32:12 GMT - Content-Type: application/xml; charset="utf-8" - Content-Length: xxxx - - <?xml version="1.0" encoding="utf-8" ?> - <C:mkcalendar-response xmlns:D="DAV:" - xmlns:C="urn:ietf:params:xml:ns:caldav"> - <D:propstat> - <D:prop> - <D:displayname/> - </D:prop> - <D:status>HTTP/1.1 200 OK</D:status> - </D:propstat> - </C:mkcalendar-response> - - The second example shows the equivalent extended MKCOL request with - the same request and response XML elements. - - >> MKCOL Request << - - MKCOL /home/lisa/calendars/events/ HTTP/1.1 - Host: calendar.example.com - Content-Type: application/xml; charset="utf-8" - Content-Length: xxxx - - <?xml version="1.0" encoding="utf-8" ?> - <D:mkcol xmlns:D="DAV:" - xmlns:C="urn:ietf:params:xml:ns:caldav"> - <D:set> - <D:prop> - <D:resourcetype> - <D:collection/> - <C:calendar/> - </D:resourcetype> - <D:displayname>Lisa's Events</D:displayname> - </D:prop> - </D:set> - </D:mkcol> - - - - - - - - - -Daboo Standards Track [Page 9] - -RFC 5689 Extended MKCOL for WebDAV September 2009 - - - >> MKCOL Response << - - HTTP/1.1 201 Created - Cache-Control: no-cache - Date: Sat, 11 Nov 2006 09:32:12 GMT - Content-Type: application/xml; charset="utf-8" - Content-Length: xxxx - - <?xml version="1.0" encoding="utf-8" ?> - <D:mkcol-response xmlns:D="DAV:" - xmlns:C="urn:ietf:params:xml:ns:caldav"> - <D:propstat> - <D:prop> - <D:resourcetype/> - <D:displayname/> - </D:prop> - <D:status>HTTP/1.1 200 OK</D:status> - </D:propstat> - </D:mkcol-response> - -5. XML Element Definitions - -5.1. mkcol XML Element - - Name: mkcol - - Namespace: DAV: - - Purpose: Used in a request to specify properties to be set in an - extended MKCOL request, as well as any additional information - needed when creating the resource. - - Description: This XML element is a container for the information - required to modify the properties on a collection resource as it - is created in an extended MKCOL request. - - Definition: - - <!ELEMENT mkcol (set+)> - -5.2. mkcol-response XML Element - - Name: mkcol-response - - Namespace: DAV: - - - - - - -Daboo Standards Track [Page 10] - -RFC 5689 Extended MKCOL for WebDAV September 2009 - - - Purpose: Used in a response to indicate the status of properties - that were set or failed to be set during an extended MKCOL - request. - - Description: This XML element is a container for the information - returned about a resource that has been created in an extended - MKCOL request. - - Definition: - - <!ELEMENT mkcol-response (propstat+)> - -6. Security Considerations - - This extension does not introduce any new security concerns beyond - those already described in HTTP [RFC2616] and WebDAV [RFC4918]. - -7. Acknowledgments - - Thanks to Bernard Desruisseaux, Mike Douglass, Alexey Melnikov, - Julian Reschke, and Simon Vaillancourt. - - -8. Normative References - - [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate - Requirement Levels", BCP 14, RFC 2119, March 1997. - - [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., - Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext - Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. - - [RFC4791] Daboo, C., Desruisseaux, B., and L. Dusseault, - "Calendaring Extensions to WebDAV (CalDAV)", RFC 4791, - March 2007. - - [RFC4918] Dusseault, L., "HTTP Extensions for Web Distributed - Authoring and Versioning (WebDAV)", RFC 4918, June 2007. - - [W3C.REC-xml-20081126] - Maler, E., Yergeau, F., Paoli, J., Bray, T., and C. - Sperberg-McQueen, "Extensible Markup Language (XML) 1.0 - (Fifth Edition)", World Wide Web Consortium - Recommendation REC-xml-20081126, November 2008, - <http://www.w3.org/TR/2008/REC-xml-20081126>. - - - - - - -Daboo Standards Track [Page 11] - -RFC 5689 Extended MKCOL for WebDAV September 2009 - - -Author's Address - - Cyrus Daboo - Apple Inc. - 1 Infinite Loop - Cupertino, CA 95014 - USA - - EMail: cyrus@daboo.name - URI: http://www.apple.com/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Daboo Standards Track [Page 12] - |