Intended status: Standards Track August 15, 2008 Expires: February 16, 2009

Similar documents
Network Working Group Internet-Draft October 27, 2007 Intended status: Experimental Expires: April 29, 2008

Network Working Group Internet-Draft August 2005 Expires: February 2, Atom Link No Follow draft-snell-atompub-feed-nofollow-00.

Network Working Group Internet-Draft August 2005 Expires: February 2, Atom Link No Follow draft-snell-atompub-feed-nofollow-03.

Network Working Group. Intended status: Standards Track Columbia U. Expires: March 5, 2009 September 1, 2008

Expires: October 9, 2005 April 7, 2005

Intended status: Informational. B. Wyman October 2, 2007

Network Working Group Internet-Draft January 25, 2006 Expires: July 29, Feed Rank draft-snell-atompub-feed-index-05.txt. Status of this Memo

Jabber, Inc. August 20, 2004

Expires in six months 24 October 2004 Obsoletes: RFC , , 3377, 3771

Category: Standards Track September MIB Textual Conventions for Uniform Resource Identifiers (URIs)

Category: Standards Track October 2006

Request for Comments: NewBay Software October 2007

Network Working Group. Category: Standards Track August Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Relay Agent Remote-ID Option

Intended status: Standards Track Expires: August 28, 2008 Hitachi A. Kobayashi NEC Corp. M. Stiemerling (Ed.) NEC Europe Ltd.

Request for Comments: 4633 Category: Experimental August 2006

C. Martin ipath Services February A Policy Control Mechanism in IS-IS Using Administrative Tags

Network Working Group Request for Comments: 4424 February 2006 Updates: 4348 Category: Standards Track

Category: Standards Track June Requesting Attributes by Object Class in the Lightweight Directory Access Protocol (LDAP) Status of This Memo

Request for Comments: May 2007

Network Working Group Request for Comments: August Address-Prefix-Based Outbound Route Filter for BGP-4

Request for Comments: 5179 Category: Standards Track May 2008

Category: Standards Track June 2006

Category: Standards Track Cisco H. Tschofenig Nokia Siemens Networks August 2008

Intro to the Atom Publishing Protocol. Joe Gregorio Google

Request for Comments: Category: Standards Track January 2008

Network Working Group. Category: Informational May OSPF Database Exchange Summary List Optimization

Category: Standards Track December 2007

Isode Limited March 2008

Network Working Group. Category: Standards Track Juniper Networks August 2008

Network Working Group. Category: Informational January 2006

Network Working Group Request for Comments: 5235 January 2008 Obsoletes: 3685 Category: Standards Track

Request for Comments: 3934 Updates: 2418 October 2004 BCP: 94 Category: Best Current Practice

Request for Comments: 4315 December 2005 Obsoletes: 2359 Category: Standards Track. Internet Message Access Protocol (IMAP) - UIDPLUS extension

TCP Maintenance and Minor Extensions (tcpm) Intended status: Standards Track Expires: May 1, 2009 October 28, 2008

Category: Standards Track October Vendor-Identifying Vendor Options for Dynamic Host Configuration Protocol version 4 (DHCPv4)

Network Working Group. Category: Standards Track Cisco Systems May 2007

Request for Comments: 4759 Category: Standards Track Neustar Inc. L. Conroy Roke Manor Research November 2006

Network Working Group. Cisco Systems June 2007

Request for Comments: 3861 Category: Standards Track August 2004

Network Working Group. Category: Standards Track June Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Relay Agent Subscriber-ID Option

Network Working Group. Category: Standards Track July 2007

Category: Standards Track Cisco Systems, Inc January The Secure Shell (SSH) Session Channel Break Extension

Request for Comments: 5010 Category: Standards Track Cisco Systems, Inc. September 2007

HIIT L. Eggert Nokia April Host Identity Protocol (HIP) Registration Extension

Network Working Group. Category: Informational April A Uniform Resource Name (URN) Namespace for the Open Geospatial Consortium (OGC)

Network Working Group. BCP: 131 July 2007 Category: Best Current Practice

Request for Comments: 4680 Updates: 4346 September 2006 Category: Standards Track

Category: Standards Track LabN Consulting, LLC July 2008

vcard Extensions for Instant Messaging (IM)

Network Working Group Request for Comments: 4913 Category: Experimental July 2007

Request for Comments: 3932 October 2004 BCP: 92 Updates: 3710, 2026 Category: Best Current Practice

Network Working Group Request for Comments: 4242 Category: Standards Track University of Southampton B. Volz Cisco Systems, Inc.

Request for Comments: 4715 Category: Informational NTT November 2006

Network Working Group Request for Comments: 4869 Category: Informational May Suite B Cryptographic Suites for IPsec. Status of This Memo

Network Working Group Request for Comments: A. Zinin Alcatel-Lucent March 2007

Intended Category: Standards Track Expires March 2006 September 2005

Network Working Group. Category: Standards Track Samsung S. Kumar Tech Mahindra Ltd S. Madanapalli Samsung May 2008

Network Working Group. February 2005

Category: Standards Track October 2006

Category: Standards Track March Extensible Provisioning Protocol (EPP) Transport Over TCP

Network Working Group Request for Comments: 4573 Category: Standard Track July MIME Type Registration for RTP Payload Format for H.

Request for Comments: Starent Networks A. Lior Bridgewater Systems K. Leung Cisco Systems October 2007

Category: Informational September 2004

Category: Best Current Practice February Early IANA Allocation of Standards Track Code Points

Request for Comments: 5079 Category: Standards Track December Rejecting Anonymous Requests in the Session Initiation Protocol (SIP)

Network Working Group Request for Comments: 4143 Category: Standards Track Brandenburg November 2005

Network Working Group Request for Comments: 3937 Category: Informational October 2004

Category: Standards Track July The Post Office Protocol (POP3) Simple Authentication and Security Layer (SASL) Authentication Mechanism

Category: Standards Track Cisco Systems, Inc. March 2005

Request for Comments: 5208 Category: Informational May 2008

Category: Experimental April BinaryTime: An Alternate Format for Representing Date and Time in ASN.1

Request for Comments: 4393 Category: Standards Track March MIME Type Registrations for 3GPP2 Multimedia Files

Network Working Group Request for Comments: February 2006

Category: Informational Woven Systems May 2008

October Network News Transfer Protocol (NNTP) Extension for Streaming Feeds

IETF TRUST. Legal Provisions Relating to IETF Documents. February 12, Effective Date: February 15, 2009

September The Internet Assigned Number Authority (IANA) tel Uniform Resource Identifier (URI) Parameter Registry. Status of This Memo

Network Working Group Request for Comments: Cisco Systems, Inc. December 2005

IETF TRUST. Legal Provisions Relating to IETF Documents. Approved November 6, Effective Date: November 10, 2008

Network Working Group. N. Williams Sun Microsystems June 2006

INTERNET-DRAFT DTLS over DCCP February 6, DTLS over DCCP

Network Working Group. Category: Informational SPARTA, Inc. S. Crocker Shinkuro Inc. S. Krishnaswamy SPARTA, Inc. August 2007

Request for Comments: K. Norrman Ericsson June 2006

Network Working Group. February Media Gateway Control Protocol (MGCP) Redirect and Reset Package

Network Working Group. Category: Standards Track Cisco Systems, Inc. April 2004

Network Working Group Request for Comments: 4147 Category: Informational August Proposed Changes to the Format of the IANA IPv6 Registry

Category: Experimental June 2006

Network Working Group. Updates: 3463, 4468, 4954 June 2008 Category: Best Current Practice. A Registry for SMTP Enhanced Mail System Status Codes

draft fanf smtp quickstart 01 : 1/7

RFC 4871 DomainKeys Identified Mail (DKIM) Signatures -- Update draft-ietf-dkim-rfc4871-errata-03-01dc

Request for Comments: 3968 Updates: 3427 December 2004 BCP: 98 Category: Best Current Practice

Updates: 2409 May 2005 Category: Standards Track. Algorithms for Internet Key Exchange version 1 (IKEv1)

Request for Comments: 3905 Category: Informational September A Template for IETF Patent Disclosures and Licensing Declarations

Network Working Group Request for Comments: 4603 Category: Informational Cisco Systems July Additional Values for the NAS-Port-Type Attribute

Network Working Group Request for Comments: A. Zinin Alcatel-Lucent March OSPF Out-of-Band Link State Database (LSDB) Resynchronization

Category: Standards Track Microsoft May 2004

Network Working Group Request for Comments: 4792 Updates: 3641 January 2007 Category: Standards Track

Network Working Group. Category: Standards Track June 2005

Network Working Group Request for Comments: 5167 Category: Informational Polycom March 2008

Network Working Group Request for Comments: December 2004

Transcription:

Network Working Group J. Gregorio, Ed. Internet-Draft Google Intended status: Standards Track August 15, 2008 Expires: February 16, 2009 Status of this Memo AtomPub Multipart Media Resource Creation draft-gregorio-atompub-multipart-03 By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on February 16, 2009. Abstract This specification defines how an Atom Publishing Protocol collection may process multipart/related requests and also defines how a service announces that it accepts multipart/related entities. Editorial Note To provide feedback on this Internet-Draft, join the Atom Protocol mailing list (http://www.imc.org/atom-protocol/) [1]. Gregorio Expires February 16, 2009 [Page 1]

Table of Contents 1. Introduction......................... 3 1.1. Notational Conventions.................. 3 1.2. Design Considerations.................. 3 1.3. Applicability...................... 3 2. Terminology......................... 3 3. Multipart Representations.................. 4 4. Server Processing...................... 4 5. Service Document Extension.................. 5 6. Examples........................... 5 7. Security Considerations................... 8 8. IANA Considerations..................... 8 9. Normative References..................... 8 Author s Address......................... 9 Intellectual Property and Copyright Statements.......... 10 Gregorio Expires February 16, 2009 [Page 2]

1. Introduction The Atom Publishing Protocol [RFC5023] defines Media Collections and how to create a Media Resource by POSTing the media to the Media Collection. RFC 5023 does not define handling multipart/related [RFC2387] representations nor does it specify how the acceptance of such representations should be advertised in the Service Document. This specification covers both the processing and the Service Document aspects of handling multipart/related content. 1.1. Notational Conventions 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]. 1.2. Design Considerations The primary objective of multipart/related POSTs is to reduce roundtrips for creating Media Resources. There are three round trips in the typical Media Resource creation scenario; POST of the media, GET of the Media Link Entry, and subsequent PUT of the updated Media Link Entry. This specification reduces that to just a single round-trip by allowing the client to package up the media and the associated Media Link Entry into a single multipart/related representation which is POSTed to the Media Collection. The design of the handling of multipart/related representations is aimed at backward compatibility, that is for non-multipart/related aware clients to fully function. A second aim is to retain and utilize the expressiveness of the current app:accept element in the Service Document. The last aim is to ease the burden on clients by allowing the multipart representation to be constructed in an order that is convenient for the client. 1.3. Applicability The applicability of multipart/related representations to AtomPub Collections is restricted to the creation of new entries in Media collections. It does not specify the creation or use of a resource that supports a GET to return the multipart/related representation nor does it specify the creation or use of a resource that supports a PUT of a multipart/related representation. 2. Terminology The terms Collection, Media Resource, Media Link Entry, Foreign Gregorio Expires February 16, 2009 [Page 3]

Markup, and Service Document are used as defined in [RFC5023]. The term Object Root is used as defined in [RFC2387]. 3. Multipart Representations This section covers the constraints on a multipart/related representation sent to a Media Collection. Section 5 covers how a client discovers that a Media Collection accepts multipart/related representations. There may be other specifications that define uses for multipart representations in the AtomPub context; this specification only describes one particular representation and how to use it in the media-resource creation process. Follow-on multipart/related specifications will have to define a method by which a server can differentiate which specification is in force, which is beyond the scope of this document. A multipart/related POST to a Media Collection MUST be a valid multipart/related representation as defined by [RFC2387] and MUST contain two body parts. One, referred to as the Media Part, MUST be an Atom Entry with a media type of application/atom+xml or application/atom+xml;type=entry. The other, referred to as the Media Part, MUST be of a media type acceptable to the collection. The object root MUST be the Entry Part. The Entry Part s atom: content element MUST have a src attribute whose value is the URI of the related media in the Media Part. The src attribute value MUST be a cid: URI as defined by [RFC2392]. The Content-Type: header of the POST request MUST specify "application/atom+xml;type=entry" or "application/atom+xml". 4. Server Processing A successful POST of a multipart/related representation to a Media Collection causes several resource-creation processes to occur as described in [RFC5023]. The Media Part is used to create a Media Resource as if it had been posted as a request body to the collection as described in section 9.6, and the Entry Part is used to create the corresponding Media Link Entry. Assuming these two steps are successful, the server returns a 201 status code and a Location: header pointing to the newly created Media Link Entry. The applicable rules from [RFC5023] MUST be followed, including Slug: header processing. While a multipart/related request replaces three round trips in the typical Media Resource creation scenario, AtomPub has no mechanism to Gregorio Expires February 16, 2009 [Page 4]

report partial success. Thus, the handling of a multipart/related request by the server MUST be atomic; that is, either succeed with a 201 Created status code, or return an error status code. 5. Service Document Extension An AtomPub service announces that it will accept multipart/related POSTs by an extension to the app:accept element. The "alternate" attribute s value MUST be one more more tokens, space-separated if more than one. The only token defined by this specification is "multipart-related". The presence of the "multipart-related" token in the alternate attribute s value indicates that the collection accepts multipart/related POSTs whose Media Part has a content-type matching that specified in the app:accept element. The following example indicates a collection that allows the creation of resources with the Ogg Bitstream Format and will also accept them in multipart form. <app:accept alternate="multipart-related">application/ogg</app:accept> The multipart attribute is foreign markup and will be ignored by clients that do not understand multipart/related uploads. In addition it permits the full range of the app:accept element to be used. The following indicates that the collection accepts any image media type and will also accept them in multipart form. <app:accept alternate="multipart-related">image/*</app:accept> The alternate attribute allows clients that are unaware of multipart/related to continue to operate as normal since the alternate attribute is foreign markup. The alternative, which is to put a multipart/related media type in the app:accept element, loses flexibility since the type parameter to the multipart/related media type accepts only media types and not media ranges. 6. Examples Here is an example service document that contains two media collections. The first collection accepts multipart/related POSTs for video media types only. The second collection accepts multipart/ related POSTs for image/jpeg and image/png media types. Gregorio Expires February 16, 2009 [Page 5]

<?xml version="1.0" encoding= utf-8?> <service xmlns="http://www.w3.org/2007/app" xmlns:atom="http://www.w3.org/2005/atom"> <workspace> <atom:title>media Collections</atom:title> <collection href="http://example.org/blog/main" > <atom:title>mostly Media</atom:title> <accept alternate="multipart-related">video/*</accept> <accept alternate="" >text/*</accept> <accept >audio/*</accept> </collection> <collection href="http://example.org/blog/pic" > <atom:title>pictures Only</atom:title> <accept alternate="multipart-related">image/png</accept> <accept alternate="multipart-related">image/gif</accept> </collection> </workspace> </service> Here is an example interaction of a client creating a new Media Resource in the Pictures Only media collection using a png image in a multipart/related representation. Gregorio Expires February 16, 2009 [Page 6]

POST /blog/pic HTTP/1.1 Host: example.org Content-Length: nnnn content-type: multipart/related; boundary="===============1605871705==" type="application/atom+xml" slug: The Beach mime-version: 1.0 Media Post --===============1605871705== Content-Type: application/atom+xml; charset="utf-8" MIME-Version: 1.0 <?xml version="1.0"?> <entry xmlns="http://www.w3.org/2005/atom"> <title>the Beach</title> <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> <updated>2005-10-07t17:17:08z</updated> <author><name>daffy</name></author> <summary type="text"> A nice sunset picture over the water. </summary> <content src="cid:99334422@example.com" type="image/gif" /> </entry> --===============1605871705== Content-Type: image/gif MIME-Version: 1.0 Content-ID: <99334422@example.com> GIF89a...binary image data... --===============1605871705==-- If the request was successful the response might look like: Gregorio Expires February 16, 2009 [Page 7]

HTTP/1.1 201 Created Date: Fri, 7 Oct 2005 17:17:11 GMT Content-Length: nnn Content-Type: application/atom+xml;type=entry;charset="utf-8" Location: http://example.org/media/edit/the_beach.atom <?xml version="1.0"?> <entry xmlns="http://www.w3.org/2005/atom"> <title>the Beach</title> <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> <updated>2005-10-07t17:17:08z</updated> <author><name>daffy</name></author> <summary type="text"> A nice sunset picture over the water. </summary> <content type="image/png" src="http://media.example.org/the_beach.png"/> <link rel="edit-media" href="http://media.example.org/edit/the_beach.png" /> <link rel="edit" href="http://example.org/media/edit/the_beach.atom" /> </entry> 7. Security Considerations The security considerations are the same as delineated in [RFC5023]. 8. IANA Considerations No IANA actions are required by this document. 9. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2387] Levinson, E., "The MIME Multipart/Related Content-type", RFC 2387, August 1998. [RFC2392] Levinson, E., "Content-ID and Message-ID Uniform Resource Locators", RFC 2392, August 1998. [RFC5023] Gregorio, J. and B. de hora, "The Atom Publishing Protocol", RFC 5023, October 2007. Gregorio Expires February 16, 2009 [Page 8]

[1] <http://www.imc.org/atom-protocol/> Author s Address Joe Gregorio (editor) Google Email: joe@bitworking.org URI: http://bitworking.org/ Gregorio Expires February 16, 2009 [Page 9]

Full Copyright Statement Copyright (C) The IETF Trust (2008). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Gregorio Expires February 16, 2009 [Page 10]