idnits 2.17.1 draft-ietf-atompub-protocol-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** It looks like you're using RFC 3978 boilerplate. You should update this to the boilerplate described in the IETF Trust License Policy document (see https://trustee.ietf.org/license-info), which is required now. -- Found old boilerplate from RFC 3667, Section 5.1 on line 15. -- Found old boilerplate from RFC 3978, Section 5.5 on line 700. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 672. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 679. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 685. ** Found boilerplate matching RFC 3978, Section 5.4, paragraph 1 (on line 706), which is fine, but *also* found old RFC 2026, Section 10.4C, paragraph 1 text on line 37. ** The document seems to lack an RFC 3978 Section 5.1 IPR Disclosure Acknowledgement -- however, there's a paragraph with a matching beginning. Boilerplate error? ** This document has an original RFC 3978 Section 5.4 Copyright Line, instead of the newer IETF Trust Copyright according to RFC 4748. ** This document has an original RFC 3978 Section 5.5 Disclaimer, instead of the newer disclaimer which includes the IETF Trust according to RFC 4748. ** The document uses RFC 3667 boilerplate or RFC 3978-like boilerplate instead of verbatim RFC 3978 boilerplate. After 6 May 2005, submission of drafts without verbatim RFC 3978 boilerplate is not accepted. The following non-3978 patterns matched text found in the document. That text should be removed or replaced: By submitting this Internet-Draft, I certify that any applicable patent or other IPR claims of which I am aware have been disclosed, or will be disclosed, and any of which I become aware will be disclosed, in accordance with RFC 3668. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- == No 'Intended status' indicated for this document; assuming Proposed Standard Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords -- however, there's a paragraph with a matching beginning. Boilerplate error? RFC 2119 keyword, line 141: '...s listed. A URI MAY support methods n...' RFC 2119 keyword, line 162: '... or more Web resources MAY be created....' RFC 2119 keyword, line 170: '... a new entry MAY be discovered in th...' RFC 2119 keyword, line 211: '...d on that resource. The URI SHOULD be...' RFC 2119 keyword, line 232: '... editable MUST have a unique URI. T...' (65 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (July 1, 2004) is 7237 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'METHOD' is mentioned on line 562, but not defined == Unused Reference: 'RFC2629' is defined on line 639, but no explicit reference was found in the text ** Obsolete normative reference: RFC 2629 (Obsoleted by RFC 7749) Summary: 8 errors (**), 0 flaws (~~), 4 warnings (==), 7 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Network Working Group J. Gregorio, Ed. 2 Internet-Draft BitWorking, Inc 3 Expires: December 30, 2004 R. Sayre, Ed. 4 Boswijck Memex Consulting 5 July 1, 2004 7 The Atom Publishing Protocol 8 draft-ietf-atompub-protocol-00.txt 10 Status of this Memo 12 By submitting this Internet-Draft, I certify that any applicable 13 patent or other IPR claims of which I am aware have been disclosed, 14 and any of which I become aware will be disclosed, in accordance with 15 RFC 3668. 17 Internet-Drafts are working documents of the Internet Engineering 18 Task Force (IETF), its areas, and its working groups. Note that 19 other groups may also distribute working documents as 20 Internet-Drafts. 22 Internet-Drafts are draft documents valid for a maximum of six months 23 and may be updated, replaced, or obsoleted by other documents at any 24 time. It is inappropriate to use Internet-Drafts as reference 25 material or to cite them other than as "work in progress." 27 The list of current Internet-Drafts can be accessed at 28 http://www.ietf.org/ietf/1id-abstracts.txt. 30 The list of Internet-Draft Shadow Directories can be accessed at 31 http://www.ietf.org/shadow.html. 33 This Internet-Draft will expire on December 30, 2004. 35 Copyright Notice 37 Copyright (C) The Internet Society (2004). All Rights Reserved. 39 Abstract 41 This memo presents a protocol for using XML (Extensible Markup 42 Language) and HTTP (HyperText Transport Protocol) to edit content. 44 The Atom Publishing Protocol is an application-level protocol for 45 publishing and editing Web resources belonging to periodically 46 updated websites. The protocol at its core is the HTTP transport of 47 Atom-formatted representations. The Atom format is documented in the 48 Atom Syndication Format 0.3 PRE-DRAFT 49 (http://www.mnot.net/drafts/draft-nottingham-atom-format-02.html). 51 To provide feedback on this Internet-Draft, join the atom-syntax 52 mailing list (http://www.imc.org/atom-syntax/index.html). 54 Table of Contents 56 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 57 1.1 Notational Conventions . . . . . . . . . . . . . . . . . . 4 58 1.2 Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 59 2. The Atom Publishing Protocol Model . . . . . . . . . . . . . 4 60 3. Functional Specification . . . . . . . . . . . . . . . . . . 5 61 3.1 PostURI . . . . . . . . . . . . . . . . . . . . . . . . . 5 62 3.1.1 Locating the PostURI . . . . . . . . . . . . . . . . . 5 63 3.1.2 Request . . . . . . . . . . . . . . . . . . . . . . . 5 64 3.1.3 Response . . . . . . . . . . . . . . . . . . . . . . . 5 65 3.2 EditURI . . . . . . . . . . . . . . . . . . . . . . . . . 6 66 3.2.1 Locating . . . . . . . . . . . . . . . . . . . . . . . 7 67 3.2.2 Request . . . . . . . . . . . . . . . . . . . . . . . 7 68 3.3 FeedURI . . . . . . . . . . . . . . . . . . . . . . . . . 7 69 3.3.1 Locating . . . . . . . . . . . . . . . . . . . . . . . 8 70 3.3.2 Request . . . . . . . . . . . . . . . . . . . . . . . 8 71 3.3.3 Response . . . . . . . . . . . . . . . . . . . . . . . 8 72 3.4 Link Tag . . . . . . . . . . . . . . . . . . . . . . . . . 8 73 3.4.1 rel . . . . . . . . . . . . . . . . . . . . . . . . . 8 74 3.4.2 href . . . . . . . . . . . . . . . . . . . . . . . . . 9 75 3.4.3 title . . . . . . . . . . . . . . . . . . . . . . . . 9 76 3.4.4 type . . . . . . . . . . . . . . . . . . . . . . . . . 9 77 3.5 Atom Request and Response Body Constraints . . . . . . . . 9 78 3.5.1 id . . . . . . . . . . . . . . . . . . . . . . . . . . 9 79 3.5.2 link . . . . . . . . . . . . . . . . . . . . . . . . . 10 80 3.5.3 title . . . . . . . . . . . . . . . . . . . . . . . . 10 81 3.5.4 summary . . . . . . . . . . . . . . . . . . . . . . . 10 82 3.5.5 content . . . . . . . . . . . . . . . . . . . . . . . 10 83 3.5.6 issued . . . . . . . . . . . . . . . . . . . . . . . . 11 84 3.5.7 modified . . . . . . . . . . . . . . . . . . . . . . . 11 85 3.5.8 created . . . . . . . . . . . . . . . . . . . . . . . 11 86 3.5.9 author . . . . . . . . . . . . . . . . . . . . . . . . 11 87 3.5.10 contributor . . . . . . . . . . . . . . . . . . . . 12 88 3.5.11 generator . . . . . . . . . . . . . . . . . . . . . 12 89 4. Security Considerations . . . . . . . . . . . . . . . . . . 12 90 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . 13 91 6. Appendix A - SOAP Enabling . . . . . . . . . . . . . . . . . 13 92 6.1 Servers . . . . . . . . . . . . . . . . . . . . . . . . . 13 93 6.2 Clients . . . . . . . . . . . . . . . . . . . . . . . . . 13 94 7. Appendix B - Examples . . . . . . . . . . . . . . . . . . . 13 95 7.1 Example for a weblog . . . . . . . . . . . . . . . . . . . 13 96 7.2 Example for a wiki . . . . . . . . . . . . . . . . . . . . 13 98 8. Revision History . . . . . . . . . . . . . . . . . . . . . . 14 99 9. Normative References . . . . . . . . . . . . . . . . . . . . 15 100 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 15 101 Intellectual Property and Copyright Statements . . . . . . . 16 103 1. Introduction 105 The Atom Publishing Protocol is an application-level protocol for 106 publishing and editing Web resources. 108 1.1 Notational Conventions 110 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 111 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", the and "OPTIONAL" in 112 this document are to be interpreted as described in RFC2119. 114 1.2 Terminology 116 Atom Entry: An Atom Entry is a fragment of a full Atom feed. In this 117 case, the fragment is a single 'entry' element and all its child 118 elements. Each Atom Entry describes a single Web resource, 119 providing metadata and optionally a textual representation of that 120 resource. 121 PostURI: A URI that is used to create new resources. POSTing an Atom 122 Entry to this URI will create a new resource. 123 EditURI: A URI that is used to edit a resource. The editing is done 124 using the HTTP verbs GET, PUT and DELETE. The representation of 125 the resource is always that of an Atom Entry. 126 FeedURI: The URI which identifies an Atom Feed. 128 2. The Atom Publishing Protocol Model 130 The Atom Publishing Protocol is an application-level protocol for 131 publishing and editing Web resources. Using the common HTTP verbs 132 provides a pattern for working with all such Web resources: 133 o GET is used to retrieve a representation of a resource or perform 134 a read-only query. 135 o PUT is used to update a known resource. 136 o POST is used to create a new dynamically-named resource. 137 o DELETE is used to remove a resource. 139 There are three major classes of URIs in this specification: PostURI, 140 FeedURI and EditURI. This specification defines the expected actions 141 for each of the methods listed. A URI MAY support methods not listed 142 here. For example, an EditURI could support a POST or OPTIONS 143 method. However, what those methods do is beyond the scope of this 144 specification. 145 o EditURI: PUT, GET, DELETE 146 o PostURI: POST 147 o FeedURI: GET 149 This document does not specify the form of the URIs that are used. 150 The URI space of each server is controlled, as defined by HTTP, by 151 the server alone. What this document does specify are the formats of 152 the files that are exchanged and the actions that can be performed on 153 the URIs embedded in those files. 155 3. Functional Specification 157 3.1 PostURI 159 The PostURI is used to create entries. These can be either full 160 entries, such as a weblog post, or they can be comments, or even a 161 wiki page. The client POSTs a filled-in Atom Entry to this URI. If 162 the request is successful, one or more Web resources MAY be created. 163 For example, POSTing an Atom entry to a PostURI may create two new 164 Web resources, an HTML representation and an Atom representation. 166 3.1.1 Locating the PostURI 168 The PostURI can be discovered in a link element with an @rel of 169 'service.post'. The link element containing a PostURI used to create 170 a new entry MAY be discovered in three different places. The first 171 place it may be found is in a element in the 'head' element of 172 an HTML document. 174 The second place a PostURI may be found an atom:link element that is 175 a child of the atom:feed element. The third place a PostURI may be 176 found is in the atom:link element of an atom:entry. 178 @@ TBD @@ - Discuss subordinate resources and what a PostURI means 179 based on where the URI was found. 181 186 3.1.2 Request 188 The request contains a filled-in Atom entry, subject to the 189 constraints in section Section 3.5. 191 3.1.3 Response 193 The possible status codes from a POST are 201, 303, 400, 401, 404, 194 410 and 500. 196 3.1.3.1 Response code 201 198 Response includes a Location: header with the URI of the created 199 resource, i.e. the URI used to edit the entry, as opposed to the URI 200 used to display the content. The body of the response will contain 201 the entry "filled-in" with time stamps and any other data the server 202 chooses to reveal. This must contain enough information to enable a 203 client to issue a subsequent PUT to this location. Note that the 204 server may chose to omit the content in the response, particularly if 205 it is large. 207 3.1.3.2 Response code 303 209 The body of this response does not contain the filled-in Entry, but 210 the filled-in Entry can be found under a different URI and can be 211 retrieved using a GET method on that resource. The URI SHOULD be 212 given by the Location field in the response. 214 3.1.3.3 Response code 400 216 Indicates that the server believes that that data sent constitutes an 217 invalid request. A short description of the error will appear on the 218 219 itself. A longer description will appear in the body. 221 3.1.3.4 Response code 500 223 Indicates that the server detected an internal error on the server 224 processing this request (such as an unhandled exception). A short 225 description of the error will appear on the 226 227 itself. A longer description will appear in the body. 229 3.2 EditURI 231 An EditURI is used to edit a single entry. Each entry that is 232 editable MUST have a unique URI. This URI supports both GET and PUT 233 and they are used in tandem for an editing cycle. The client GETs 234 the representation which is formatted as an Atom entry. The client 235 may then update the entry and then PUT it back to the same URI. The 236 PUT will cause all the related resources to be updated, for example, 237 the HTML representation. 239 Note that the value of the content element in the Atom entry does not 240 have to exactly match the content element for the same entry when it 241 is represented in an Atom feed. For example, a server may allow the 242 client to post entries whose content is formatted as WikiML, yet the 243 server may clean up such markup and transform it into well-formed 244 XHTML before placing it in the publicly available Atom feed. Another 245 scenario is summaries--the EditURI is for editing the full content of 246 an entry, but the server may only present excerpts when it produces 247 an Atom feed. 249 A client will send a DELETE to the EditURI to delete an entry. 251 3.2.1 Locating 253 For editing a site Entry, the link tag is used. Note that a link tag 254 is used in both HTML and in the Atom format. A link tag of the 255 following format points to the EditURI for a site. In HTML, the link 256 tags for editing are always found in the head element, while in Atom 257 they may appear as children of the entry elements. 259 264 Note: The critical characteristic of this link tag is the @rel of 265 'service.edit' and the @type of 'application/atom+xml'. 267 3.2.2 Request 269 A PUT request, and a GET response both contain a filled-in Atom 270 entry, subject to the constraints in section Section 3.5. 272 3.3 FeedURI 274 The FeedURI is used to retrieve a representation in Atom format. 275 Note that this feed is different from a typical Atom feed in that it 276 contains "link" elements for navigating and manipulating the content 277 of the site. For example there should be a "link" element with 278 rel="next" whose URI points to the next block of entries on the site. 279 Similarly, the feed element can contain a "link" element with 280 rel="service.post", the URI of which is a PostURI. Individual 281 entries should contain "link" elements with rel="service.edit" whose 282 URIs are EditURIs. 284 @@ Editor's Note: @@ Note that the "service.feed" takes the place of 285 the Introspection File and the Search facet in previous versions of 286 the specification. That is, facet discovery, which was previously 287 done by inspecting the Introspection file is now done by looking for 288 "link" tags with an attribute "rel" set to "service.[something]" in 289 the "service.feed" file. At the same time the same representation 290 replaces the search facet by having "link" tags that point to other 291 feeds using well knows 'rel' attribute values such as 'next' and 292 'prev', or the search can branch in multiple directions by specifying 293 multiple link tags with rel="service.feed" and having differing title 294 attributes that announce the kind of search results in that feed. 296 3.3.1 Locating 298 A link tag of the following format points to the FeedURI. 300 305 3.3.2 Request 307 The request is a simple GET. No other verbs are currently specified 308 for this URI. 310 3.3.3 Response 312 The expected status codes from a GET are 200, 301, 307, and 500. 313 401, 404, and 410 are also possible. 315 3.3.3.1 Response code 301 317 The Feed has moved permanently, the new URI is given in the Location 318 header. 320 3.3.3.2 Response code 307 322 The Feed has moved temporarily, the new URI is given in the Location 323 header. 325 3.4 Link Tag 327 The link tag is used in both HTML and Atom formats. There are slight 328 differences between the two usages. Here are the commonalities, 329 differences, and a list of well-known values for the rel attribute. 331 appears in 332 the 'head' of the document. The 'head' section only allows a linear 333 list of 'link' tags. The Atom format allows 'link' tags as children 334 of both the 'feed' element and of the 'entry' element. Note that 335 this gives the information present in the link tag more context. For 336 example ... @@ TBD @@ 338 3.4.1 rel 340 This attribute describes the relationship from the current document, 341 be it HTML or Atom, to the anchor specified by the href attribute. 342 The value of this attribute is a space-separated list of link types. 343 Note that these values are case insensitive. When used in concert 344 with type="application/atom+xml", the relations may be interpreted as 345 follows. 346 alternate: The URI in the href attribute points to an alternate 347 representation of the containing resource. 348 start: The Atom feed at the URI supplied in the href attribute 349 contains the first feed in a linear sequence of entries. 350 next: The Atom feed at the URI supplied in the href attribute 351 contains the next N entries in a linear sequence of entries. 352 prev: The Atom feed at the URI supplied in the href attribute 353 contains the previous N entries in a linear sequence of entries. 354 service.edit: The URI given in the href attribute is used to edit a 355 representation of the referred resource. 356 service.post: The URI in the href attribute is used to create new 357 resources. 358 service.feed: The URI given in the href attribute is a starting point 359 for navigating content and services. 361 3.4.2 href 363 URI of the resource being described by this link element. 365 3.4.3 title 367 Offers advisory information about the link. Rendered to the user to 368 help them choose among a set of links with the same rel and type 369 attributes. 371 3.4.4 type 373 The content type of the resource available at the URI given in the 374 href attribute of the link element. Most of the link types in this 375 specification are on type 'application/atom+xml'. 377 3.5 Atom Request and Response Body Constraints 379 The Atom format is used as the representation of all the resources in 380 this specification. As it is used in differing contexts, there are 381 different constraints of which elements may be present, and how their 382 values should be interpreted. 384 3.5.1 id 386 PostURI MUST NOT be present. 387 FeedURI MUST be present. 388 EditURI 389 GET MUST be present. 390 PUT MUST be present. 392 3.5.2 link 394 PostURI MAY be present. Servers MAY use the information to determine 395 the URI of the created resource. Relative URLs are to be 396 interpreted relative to xml:base. 397 FeedURI MUST be present. 398 EditURI 399 GET MUST be present. 400 PUT MUST be present. 402 3.5.3 title 404 PostURI MUST be present. The element may be empty, to explicitly 405 indicate "no title". Servers SHOULD NOT try to generate a title 406 if one is not provided. The type attribute MAY be present, and if 407 not it defaults to "text/plain". If present, it MUST represent a 408 MIME type that the server supports. The mode attribute MAY be 409 present. If not present, it defaults to "xml". If present, it 410 MUST be "xml", "base64", or "escaped". 411 FeedURI MUST be present. 412 EditURI 413 GET MUST be present. 414 PUT MUST be present. The element may be empty, to explicitly 415 indicate "no title". Servers SHOULD NOT try to generate a 416 title if one is not provided. 418 3.5.4 summary 420 PostURI MAY be present. If not present, the server is welcome to 421 produce its own summary. If present but empty, the server SHOULD 422 NOT generate a summary of its own. The type attribute MAY be 423 present. If not, it defaults to "text/plain". If present, it 424 must represent a MIME type that the server supports. The mode 425 attribute MAY be present and defaults to "xml". If present, it 426 must be "xml","base64", or "escaped". 427 FeedURI MAY be present. 428 EditURI 429 GET MAY be present. 430 PUT MAY be present. The element may be empty, to explicitly 431 indicate "no summary". Servers SHOULD NOT try to generate a 432 title if one is not provided. 434 3.5.5 content 435 PostURI MAY be present but may be empty, to explicitly indicate "no 436 content". The type attribute MAY be present, but defaults to 437 "text/plain" if not present. It must represent a MIME type that 438 the server supports. The MODE attribute may be present and 439 defaults to "xml" if not present. It must be "xml","base64", or 440 "escaped". 441 FeedURI MAY be present. 442 EditURI 443 GET MAY be present. 444 PUT MAY be present. The element may be empty, to explicitly 445 indicate "no content". 447 3.5.6 issued 449 PostURI MUST be present, but may be empty, in which case it signifies 450 "now" in the time zone of the server. 451 FeedURI MUST be present. 452 EditURI 453 GET MUST be present. 454 PUT MUST be present. Server policy determines if an updated time 455 is accepted. 457 3.5.7 modified 459 PostURI MUST NOT be present. 460 FeedURI MAY be present. 461 EditURI 462 GET MAY be present. 463 PUT MAY be present. The element may be empty, to explicitly 464 indicate that 'now' on the server time is to be used. 466 3.5.8 created 468 PostURI MAY be present. 469 FeedURI MAY be present. 470 EditURI 471 GET MAY be present. 472 PUT MAY be present. The server may or may not accept an updated 473 value. If the server does not allow updating the issued time 474 then any PUT request with a different issued value MUST be 475 rejected. 477 3.5.9 author 479 PostURI MAY be present. If not present, the server determines the 480 author. If present, and conflicting with valid values as 481 determined by the server, then the server may change the value of 482 author. 484 FeedURI MAY be present. 485 EditURI 486 GET MAY be present. 487 PUT MAY be present. 489 3.5.10 contributor 491 PostURI MAY be present. 492 FeedURI MAY be present. 493 EditURI 494 GET MAY be present. 495 PUT MAY be present. 497 3.5.11 generator 499 PostURI MUST be present and contain a URI. The value of the element 500 indicates the code base used to create this request. MUST also 501 have an attribute 'version' with a version number. 502 FeedURI MUST NOT be present. 503 EditURI 504 GET MUST NOT be present. 505 PUT MUST NOT be present. 507 4. Security Considerations 509 Because Atom is a publishing protocol, it is important that only 510 authorized users can create and edit entries. The security of Atom 511 is based on HTTP Digest Authentication and/or the WSSE-style 512 authentication described in this document. Any weaknesses in either 513 of these two protocols will obviously affect the security of the Atom 514 publishing protocol. 516 Both HTTP Digest Authentication and the WSSE-style authentication 517 described in this document are susceptible to dictionary-based 518 attacks on the shared secret. If the shared secret is a password 519 (instead of a random string with sufficient entropy), an attacker can 520 determine the secret by exhaustively comparing the authenticating 521 string with hashed results of the public string and dictionary 522 entries. 524 See RFC 2617 for more detailed description of the security properties 525 of HTTP Digest Authentication. 527 @@TBD@@ Talk here about using HTTP basic and digest authentication. 529 @@TBD@@ Talk here about denial of service attacks using large XML 530 files, or the billion laughs DTD attack. 532 5. IANA Considerations 534 This document has no actions for IANA. 536 6. Appendix A - SOAP Enabling 538 All servers SHOULD support the following alternate interface 539 mechanisms to enable a wider variety of clients to interact with Atom 540 Publishing Protocol servers. The following requirements are in 541 addition to the ones listed in the Functional Specification Section. 542 If a server supports SOAP Enabling then it MUST support all of the 543 following. 545 6.1 Servers 547 1. All servers MUST support the limited use of the SOAPAction HTTP 548 Header as described below in the Client section. 549 2. All servers MUST be able to process well formed XML. Servers 550 need not be able to handle processing instructions or DTDs. 551 3. Servers MUST accept content in a SOAP Envelope, and if they 552 receive a request that is wrapped in a SOAP Envelope then they 553 MUST wrap their responses in SOAP envelopes or produce a SOAP 554 Fault. 556 6.2 Clients 558 1. Clients SHOULD use the appropriate HTTP Method when possible. 559 When not possible, they should use POST and include a SOAPAction 560 HTTP header which is constrained as follows: 561 2. SOAPAction: "http://schemas.xmlsoap.org/wsdl/http/[METHOD]" 562 3. Where [METHOD] is replaced by the desired HTTP Method. 563 4. Clients MAY wrap their XML payload in a SOAP Envelope. If so, 564 they must also wrap it in an element which exactly matches the 565 HTTP Method. 567 7. Appendix B - Examples 569 7.1 Example for a weblog 571 Fill this in with an example for how all the above is used for a 572 weblog. Start with main HTML page, link tag of type service.feed to 573 the 'introspection' file. 1. Creating a new entry 2. Finding an 574 old entry 3. editing an old entry 4. commenting on a entry (via 575 HTML and Atom) 577 7.2 Example for a wiki 579 Fill this in like above but for a wiki. 581 8. Revision History 583 Rev draft-ietf-atompub-protocol-00 - 5Jul2004 - Renamed the file and 584 re-titled the document to conform to IETF submission guidelines. 585 Changed MIME type to match the one selected for the Atom format. 586 Numerous typographical fixes. We used to have two 'Introduction' 587 sections. One of them was moved into the Abstract the other absorbed 588 the Scope section. IPR and copyright notifications were added. 590 Rev 09 - 10Dec2003 - Added the section on SOAP enabled clients and 591 servers. 593 Rev 08 - 01Dec2003 - Refactored the specification, merging the 594 Introspection file into the feed format. Also dropped the 595 distinction between the type of URI used to create new entries and 596 the kind used to create comments. Dropped user preferences. 598 Rev 07 - 06Aug2003 - Removed the use of the RSD file for 599 auto-discovery. Changed copyright until a final standards body is 600 chosen. Changed query parameters for the search facet to all begin 601 with atom- to avoid name collisions. Updated all the Entries to 602 follow the 0.2 version. Changed the format of the search results and 603 template file to a pure element based syntax. 605 Rev 06 - 24Jul2003 - Moved to PUT for updating Entries. Changed all 606 the mime-types to application/x.atom+xml. Added template editing. 607 Changed 'edit-entry' to 'create-entry' in the Introspection file to 608 more accurately reflect it's purpose. 610 Rev 05 - 17Jul2003 - Renamed everything Echo into Atom. Added 611 version numbers in the Revision history. Changed all the mime-types 612 to application/atom+xml. 614 Rev 04 - 15Jul2003 - Updated the RSD version used from 0.7 to 1.0. 615 Change the method of deleting an Entry from POSTing to 616 using the HTTP DELETE verb. Also changed the query interface to GET 617 instead of POST. Moved Introspection Discovery to be up under 618 Introspection. Introduced the term 'facet' for the services listed 619 in the Introspection file. 621 Rev 03 - 10Jul2003 - Added a link to the Wiki near the front of the 622 document. Added a section on finding an Entry. Retrieving an Entry 623 now broken out into it's own section. Changed the HTTP status code 624 for a successful editing of an Entry to 205. 626 Rev 02 - 7Jul2003 - Entries are no longer returned from POSTs, 627 instead they are retrieved via GET. Cleaned up figure titles, as 628 they are rendered poorly in HTML. All content-types have been 629 changed to application/atom+xml. 631 Rev 01 - 5Jul2003 - Renamed from EchoAPI.html to follow the more 632 commonly used format: draft-gregorio-NN.html. Renamed all references 633 to URL to URI. Broke out introspection into it's own section. Added 634 the Revision History section. Added more to the warning that the 635 example URIs are not normative. 637 9 Normative References 639 [RFC2629] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629, 640 June 1999. 642 Authors' Addresses 644 Joe Gregorio (editor) 645 BitWorking, Inc 646 1002 Heathwood Dairy Rd. 647 Apex, NC 27502 648 US 650 Phone: +1 919 272 3764 651 EMail: joe@bitworking.com 652 URI: http://bitworking.com/ 654 Robert Sayre (editor) 655 Boswijck Memex Consulting 656 148 N 9th St. 4R 657 Brooklyn, NY 11211 658 US 660 EMail: rfsayre@boswijck.com 661 URI: http://boswijck.com 663 Intellectual Property Statement 665 The IETF takes no position regarding the validity or scope of any 666 Intellectual Property Rights or other rights that might be claimed to 667 pertain to the implementation or use of the technology described in 668 this document or the extent to which any license under such rights 669 might or might not be available; nor does it represent that it has 670 made any independent effort to identify any such rights. Information 671 on the procedures with respect to rights in RFC documents can be 672 found in BCP 78 and BCP 79. 674 Copies of IPR disclosures made to the IETF Secretariat and any 675 assurances of licenses to be made available, or the result of an 676 attempt made to obtain a general license or permission for the use of 677 such proprietary rights by implementers or users of this 678 specification can be obtained from the IETF on-line IPR repository at 679 http://www.ietf.org/ipr. 681 The IETF invites any interested party to bring to its attention any 682 copyrights, patents or patent applications, or other proprietary 683 rights that may cover technology that may be required to implement 684 this standard. Please address the information to the IETF at 685 ietf-ipr@ietf.org. 687 The IETF has been notified of intellectual property rights claimed in 688 regard to some or all of the specification contained in this 689 document. For more information consult the online list of claimed 690 rights. 692 Disclaimer of Validity 694 This document and the information contained herein are provided on an 695 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 696 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET 697 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, 698 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE 699 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 700 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 702 Copyright Statement 704 Copyright (C) The Internet Society (2004). This document is subject 705 to the rights, licenses and restrictions contained in BCP 78, and 706 except as set forth therein, the authors retain all their rights. 708 Acknowledgment 710 Funding for the RFC Editor function is currently provided by the 711 Internet Society.