idnits 2.17.1 draft-nottingham-atompub-feed-history-02.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 3978, Section 5.1 on line 14. -- Found old boilerplate from RFC 3978, Section 5.5 on line 379. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 356. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 363. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 369. ** 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. 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 an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) 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 14, 2005) is 6860 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) -- Possible downref: Non-RFC (?) normative reference: ref. 'AtomSyntax' Summary: 4 errors (**), 0 flaws (~~), 2 warnings (==), 8 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group M. Nottingham 3 Internet-Draft July 14, 2005 4 Expires: January 15, 2006 6 Feed History: Enabling Stateful Syndication 7 draft-nottingham-atompub-feed-history-02 9 Status of this Memo 11 By submitting this Internet-Draft, each author represents that any 12 applicable patent or other IPR claims of which he or she is aware 13 have been or will be disclosed, and any of which he or she becomes 14 aware will be disclosed, in accordance with Section 6 of BCP 79. 16 Internet-Drafts are working documents of the Internet Engineering 17 Task Force (IETF), its areas, and its working groups. Note that 18 other groups may also distribute working documents as Internet- 19 Drafts. 21 Internet-Drafts are draft documents valid for a maximum of six months 22 and may be updated, replaced, or obsoleted by other documents at any 23 time. It is inappropriate to use Internet-Drafts as reference 24 material or to cite them other than as "work in progress." 26 The list of current Internet-Drafts can be accessed at 27 http://www.ietf.org/ietf/1id-abstracts.txt. 29 The list of Internet-Draft Shadow Directories can be accessed at 30 http://www.ietf.org/shadow.html. 32 This Internet-Draft will expire on January 15, 2006. 34 Copyright Notice 36 Copyright (C) The Internet Society (2005). 38 Abstract 40 This document specifies a mechanism that allows feed publishers to 41 give hints about the nature of the feed's statefulness, and a means 42 of retrieving "missed" entries from a stateful feed. 44 1. Introduction 46 Syndication documents (e.g., those in formats such as Atom 47 [AtomSyntax] and RSS 48 ) usually only contain the last several entries in a larger 50 channel (or "feed") of information. Often, consuming software keeps 51 copies of all entries that have been previously seen, effectively 52 keeping a history of the feed's contents. 54 However, not all feeds benefit from this practice; in some, previous 55 entries are not relevant to the current contents of the feed. For 56 example, it's not desireable to keep history in this manner with a 57 "top ten" feed; showing old entries would imply that the previous 58 number one is now number eleven, and so forth. 60 Feeds that encourage this practice have a different problem. If 61 consuming software does not poll often enough, some entries may be 62 missed, causing them to be silently omitted. For some applications, 63 this is a serious error on its own. Even in non-critical 64 applications, this phenomenon can cause publishers to make Feed 65 Documents contain more entries than reasonably necessary, just to 66 assure that consumers have an amply large window in which to 67 reconstruct the feed's state. 69 This document specifies a mechanism that allows feed publishers to 70 give hints as to the nature of the feed with regard to state, and a 71 means of retrieving "missed" entries from a stateful feed. Although 72 it refers to Atom normatively, the mechanism described herein can be 73 used with similar syndication formats, such as the various flavours 74 of RSS. 76 2. Notational Conventions 78 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 79 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 80 document are to be interpreted as described in BCP 14, [RFC2119], as 81 scoped to those conformance targets. 83 In this specification, "subscription document" refers to an Atom Feed 84 Document or similar syndication format (e.g., RSS) that is intended 85 to be subscribed to; i.e., it contains the most recent entries 86 available in the feed. 88 In this specification, "archive document" refers to an Atom Feed 89 Document or similar syndication format (e.g., RSS) that is archived; 90 i.e., the set of entries inside it does not change over time. Note 91 that some entries in the archive document may also be present in the 92 subscription document; in other words, some (but not necessarily all) 93 "live" entries might already be archived. 95 In this specification, "head section" refers to the children of a 96 feed document's document-wide metadata container; e.g., the child 97 elements of the atom:feed element in an Atom Feed Document. 99 This specification uses XML Namespaces [W3C.REC-xml-names-19990114] 100 to uniquely identify XML element names. It uses the following 101 namespace prefix for the indicated namespace URI; 103 "fh": "http://purl.org/syndication/history/1.0" 105 This specification uses terms from the XML Infoset [W3C.REC-xml- 106 infoset-20040204]. However, this specification uses a shorthand; the 107 phrase "Information Item" is omitted when naming Element Information 108 Items. Therefore, when this specification uses the term "element," 109 it is referring to an Element Information Item in Infoset terms. 111 3. The 'fh:stateful' Element 113 The fh:stateful element indicates whether the Feed is stateful, and 114 MAY occur in a subscription document's head section. Its content 115 MUST be either "true" or "false". Whitespace in its content MUST be 116 ignored by processors. 118 For example, 120 true 122 If the content of the fh:stateful element is "false", it indicates 123 that the subscription document is a complete representation of the 124 entire feed; previous entries SHOULD NOT be considered part of the 125 feed by consumers. 127 For example, a feed that represents a ranking that varies over time, 128 such as "Top Twenty Records" or "Most Popular Items" should be marked 129 with a fh:stateful element containing "false". 131 If the content of the fh:stateful element is "true", it indicates 132 that the subscription document is a potentially partial 133 representation of the entire feed; previous entries MUST be 134 considered part of the feed by consumers. 136 For example, a feed that represents a chronological list, such as 137 "ExampleCo Press Releases" or "Widget Project Updates" should be 138 marked with a fh:stateful element containing "true". 140 A subscription document whose fh:stateful element contains "true" 141 MUST contain a fh:prev element, unless there are no previous entries 142 in the feed. A subscription document whose fh:stateful element 143 contains "false" MUST NOT contain a fh:prev element. 145 4. The 'fh:prev' Element 147 The fh:prev element conveys the location of an archive of previous 148 entries in the feed, and MAY occur in a subscription document's head 149 section. It MUST occur in an archive document's head section, unless 150 there are no previous entries in the feed. 152 Its content MUST be a URI reference indicating the previous archive 153 document's location. 155 For example, 157 http://www.example.com/feed/archive/2005/05 159 5. State Reconstruction 161 When presented with a partial representation of a feed, a consumer 162 MAY reconstruct the entire feed in a local store by following these 163 steps, starting with the subscription document as the current 164 document: 166 1. Add all of the entries in the current document to the store. 167 2. Dereference the fh:prev URI, if present. If it is not present, 168 stop processing. 169 3. Using the dereferenced archive document as the current document, 170 start at step one (i.e., apply these steps recursively). 172 A consumer MAY stop when it encounters an fh:prev URI whose entries 173 have been successfully stored beforehand when following this process. 175 Note that consumers MAY cache archive documents and/or use a 176 different method of reconstructing state, as long as the result is 177 the same as that achieved by following these steps. 179 Consumers SHOULD warn users when they do not have the complete state 180 of a feed (e.g., by alerting the user that an archive document is 181 unavailable, or inserting pseudo-entries that inform the user that 182 some entries may be missing). 184 Note that publishers are not required to make all archive documents 185 available. 187 6. Examples 189 Atom Subscription Document with History 191 192 194 Example Feed 195 196 2003-12-13T18:30:02Z 197 198 John Doe 199 200 urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6 201 true 202 http://example.org/2003/11/index.atom 204 205 Atom-Powered Robots Run Amok 206 207 urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a 208 2003-12-13T18:30:02Z 209 Some text in a new, fresh entry. 210 212 213 Atom Archive Document with History 215 216 218 Example Feed 219 220 2003-11-24T12:00:00Z 221 222 John Doe 223 224 urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6 225 http://example.org/2003/10/index.atom 227 228 Atom-Powered Robots Scheduled To Run Amok 229 230 urn:uuid:cd3272ef-b09c-42fd-806b-e25580e59b39 231 2003-11-24T12:00:00Z 232 Some text from an old, different entry. 233 235 236 RSS 2.0 Subscription Document with History 238 239 241 242 Liftoff News 243 http://liftoff.msfc.nasa.gov/ 244 Liftoff to Space Exploration. 245 en-us 246 Tue, 10 Jun 2003 04:00:00 GMT 247 Tue, 10 Jun 2003 09:41:01 GMT 248 http://blogs.law.harvard.edu/tech/rss 249 Weblog Editor 2.0 250 editor@example.com 251 webmaster@example.com 252 true 253 http://liftoff.msfc.nasa.gov/2003/05/feed.rss> 255 256 Star City 257 http://liftoff.msfc.nasa.gov/2003/06/news-starcity 258 How do Americans get ready to work with Russians 259 aboard the International Space Station? They take a crash course 260 in culture, language and protocol at Russia's Star 262 City. 263 Tue, 03 Jun 2003 09:39:21 GMT 264 http://liftoff.msfc.nasa.gov/2003/06/03.html#item573 265 266 267 268 RSS 2.0 Archive Document with History 270 271 273 274 Liftoff News 275 http://liftoff.msfc.nasa.gov/ 276 Liftoff to Space Exploration. 277 en-us 278 Tue, 30 May 2003 08:00:00 GMT 279 Tue, 30 May 2003 10:31:52 GMT 280 http://blogs.law.harvard.edu/tech/rss 281 Weblog Editor 2.0 282 editor@example.com 283 webmaster@example.com 284 true 285 http://liftoff.msfc.nasa.gov/2003/04/feed.rss> 287 288 Sky watchers in Europe, Asia, and parts of 289 Alaska and Canada will experience a partial eclipse of the Sun 290 on Saturday, May 31st. 291 Fri, 30 May 2003 11:06:42 GMT 292 http://liftoff.msfc.nasa.gov/2003/05/30.html#item572 293 294 295 The Engine That Does More 296 http://liftoff.msfc.nasa.gov/2003/05/news-VASIMR.asp 297 Before man travels to Mars, NASA hopes to 298 design new engines that will let us fly through the Solar 299 System more quickly. The proposed VASIMR engine would do 300 that. 301 Tue, 27 May 2003 08:37:32 GMT 302 http://liftoff.msfc.nasa.gov/2003/05/27.html#item571 303 304 305 307 7. Security Considerations 309 Feeds using the mechanisms described here could be crafted in such a 310 way as to cause a consumer to initiate excessive (or even an unending 311 sequence of) network requests, causing denial of service (either to 312 the consumer, the target server, and/or intervening networks). This 313 risk can be mitigated by requiring user intervention after a certain 314 number of requests, or by limiting requests either according to a 315 hard limit, or with heuristics. 317 Consumers should be mindful of resource limits when storing feed 318 state; to reiterate, they are not required to always store or 319 reconstruct feed state when conforming to this specification; they 320 only need inform the user when state is partial. 322 8. Normative References 324 [AtomSyntax] 325 Nottingham, M., Ed. and R. Sayre, Ed., "The Atom 326 Syndication Format", June 2005. 328 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 329 Requirement Levels", BCP 14, RFC 2119, March 1997. 331 [W3C.REC-xml-infoset-20040204] 332 Cowan, J. and R. Tobin, "XML Information Set (Second 333 Edition)", W3C REC REC-xml-infoset-20040204, 334 February 2004. 336 [W3C.REC-xml-names-19990114] 337 Bray, T., Hollander, D., and A. Layman, "Namespaces in 338 XML", W3C REC REC-xml-names-19990114, January 1999. 340 Author's Address 342 Mark Nottingham 344 Email: mnot@pobox.com 345 URI: http://www.mnot.net/ 347 Intellectual Property Statement 349 The IETF takes no position regarding the validity or scope of any 350 Intellectual Property Rights or other rights that might be claimed to 351 pertain to the implementation or use of the technology described in 352 this document or the extent to which any license under such rights 353 might or might not be available; nor does it represent that it has 354 made any independent effort to identify any such rights. Information 355 on the procedures with respect to rights in RFC documents can be 356 found in BCP 78 and BCP 79. 358 Copies of IPR disclosures made to the IETF Secretariat and any 359 assurances of licenses to be made available, or the result of an 360 attempt made to obtain a general license or permission for the use of 361 such proprietary rights by implementers or users of this 362 specification can be obtained from the IETF on-line IPR repository at 363 http://www.ietf.org/ipr. 365 The IETF invites any interested party to bring to its attention any 366 copyrights, patents or patent applications, or other proprietary 367 rights that may cover technology that may be required to implement 368 this standard. Please address the information to the IETF at 369 ietf-ipr@ietf.org. 371 Disclaimer of Validity 373 This document and the information contained herein are provided on an 374 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 375 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET 376 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, 377 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE 378 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 379 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 381 Copyright Statement 383 Copyright (C) The Internet Society (2005). This document is subject 384 to the rights, licenses and restrictions contained in BCP 78, and 385 except as set forth therein, the authors retain all their rights. 387 Acknowledgment 389 Funding for the RFC Editor function is currently provided by the 390 Internet Society.