idnits 2.17.1
draft-nottingham-atompub-feed-history-07.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 15.
-- Found old boilerplate from RFC 3978, Section 5.5 on line 612.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 623.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 630.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 636.
** 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 issues found here.
Checking nits according to https://www.ietf.org/id-info/checklist :
----------------------------------------------------------------------------
No issues found here.
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 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?
(The document does seem to have the reference to RFC 2119 which the
ID-Checklist requires).
-- 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 (September 12, 2006) is 6434 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)
No issues found here.
Summary: 3 errors (**), 0 flaws (~~), 2 warnings (==), 7 comments (--).
Run idnits with the --verbose option for more detailed information about
the items above.
--------------------------------------------------------------------------------
2 Network Working Group M. Nottingham
3 Internet-Draft September 12, 2006
4 Intended status: Standards Track
5 Expires: March 16, 2007
7 Feed Paging and Archiving
8 draft-nottingham-atompub-feed-history-07
10 Status of This Memo
12 By submitting this Internet-Draft, each author represents that any
13 applicable patent or other IPR claims of which he or she is aware
14 have been or will be disclosed, and any of which he or she becomes
15 aware will be disclosed, in accordance with Section 6 of BCP 79.
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 Internet-
20 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 March 16, 2007.
35 Copyright Notice
37 Copyright (C) The Internet Society (2006).
39 Abstract
41 This specification defines three types of syndicated feeds that
42 enable publication of entries across one or more feed documents.
44 Table of Contents
46 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
47 1.1. Notational Conventions . . . . . . . . . . . . . . . . . . 3
48 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
49 2. Complete Feeds . . . . . . . . . . . . . . . . . . . . . . . . 4
50 2.1. Examples . . . . . . . . . . . . . . . . . . . . . . . . . 5
51 3. Paged Feeds . . . . . . . . . . . . . . . . . . . . . . . . . 6
52 3.1. Examples . . . . . . . . . . . . . . . . . . . . . . . . . 7
53 4. Archived Feeds . . . . . . . . . . . . . . . . . . . . . . . . 8
54 4.1. Examples . . . . . . . . . . . . . . . . . . . . . . . . . 10
55 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
56 6. Security Considerations . . . . . . . . . . . . . . . . . . . 14
57 7. Normative References . . . . . . . . . . . . . . . . . . . . . 14
58 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 15
59 Appendix B. Reconstructing Archived Feeds . . . . . . . . . . . . 15
61 1. Introduction
63 Syndicated Web feeds (using such formats as Atom [RFC4287] or RSS
64 2.0) are often split up into multiple documents to save bandwidth,
65 allow "sliding window" access, or for other purposes.
67 This specification formalizes two types of feeds that can span one or
68 more feed documents; "paged" feeds and "archived" feeds.
69 Additionally, it defines "complete" feeds to cover the case when a
70 single feed document explicitly represents all of the feed's entries.
72 These types are complementary; each has different properties and
73 trade-offs:
75 o Complete feeds contain the entire set of entries in one document,
76 and can be useful when it isn't desirable to "remember"
77 previously-seen entries.
78 o Paged feeds split the logical feed's entries among multiple
79 temporary documents. This can be useful when entries in the feed
80 are not long-lived or stable, and the client needs to access an
81 arbitrary portion of them, usually in close succession.
82 o Archived feeds split them among multiple permanent documents, and
83 can be useful when entries are long-lived and it is important for
84 clients to see every one.
86 Although they refer to Atom normatively, the mechanisms described
87 herein can be used with similar syndication formats, such as the
88 various flavors of RSS.
90 1.1. Notational Conventions
92 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
93 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
94 document are to be interpreted as described in BCP 14 [RFC2119], as
95 scoped to those conformance targets.
97 This specification uses XML Namespaces [W3C.REC-xml-names-19990114]
98 to uniquely identify XML element names. It uses the following
99 namespace prefix for the indicated namespace URI;
101 "fh": "http://purl.org/syndication/history/1.0"
103 1.2. Terminology
105 In this specification, "feed document" refers to an Atom Feed
106 Document, RSS document, or similar syndication instance document. It
107 may contain any number of entries (in RSS, items), and may or may not
108 be a complete representation of the logical feed.
110 A "logical feed" is the set of entries associated with a particular
111 feed (as contrasted with a feed document, which may contain a subset
112 of them).
114 "Head section" refers to the children of a feed document's document-
115 wide metadata container; e.g., the child elements of the atom:feed
116 element in an Atom Feed Document.
118 This specification uses terms from the XML Infoset
119 [W3C.REC-xml-infoset-20040204]. However, this specification uses a
120 shorthand; the phrase "Information Item" is omitted when naming
121 Element Information Items. Therefore, when this specification uses
122 the term "element," it is referring to an Element Information Item in
123 Infoset terms.
125 This specification also uses Atom link relations to identify
126 different types of links; see the Atom specification [RFC4287] for
127 information about their syntax, and the IANA link relation registry
128 for more information about specific values.
130 2. Complete Feeds
132 A complete feed is a feed document that contains all of the entries
133 of a logical feed; any entry not actually in the feed document SHOULD
134 NOT be considered to be part of that feed.
136 For example; a feed that represents a ranking that varies over time,
137 such as "Top Twenty Records" or "Most Popular Items" should not have
138 newer entries displayed alongside older ones. By marking them as
139 complete feeds, old entries are discarded when the feed is refreshed.
141 The fh:complete element, when present in a feed's head section,
142 indicates that the feed document it occurs in is a complete
143 representation of the logical feed's entries.
145 For example,
147
149 2.1. Examples
151 Atom-formatted Complete Feed
153
154
156 NetMovies Queue
157 The DVDs you'll receive next.
158
159
160
162 2003-12-13T18:30:02Z
163
164 John Doe
165
166 urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6
167
168 Casablanca
169
170 urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a
171 2003-12-13T18:30:02Z
172 Here's looking at you, kid...
173
174
175 RSS 2.0-formatted Complete Feed
177
178
180
181 NetMovies Queue
182 http://netmovies.example.org/
183 The DVDs you'll receive next.
184 en-us
185 Tue, 10 Jun 2003 04:00:00 GMT
186 Tue, 10 Jun 2003 09:41:01 GMT
187 http://blogs.law.harvard.edu/tech/rss
188 Weblog Editor 2.0
189 editor@netmovies.example.org
190 webmaster@netmovies.example.org
191
192
193 Casablanca
194 http://netmovies.example.org/movies/Casablanca
195 Here's looking at you, kid...
196
197 Tue, 03 Jun 2003 09:39:21 GMT
198 urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a
199
200
201
203 3. Paged Feeds
205 A paged feed is a set of linked feed documents that together contain
206 the entries of a logical feed, without any guarantees about the
207 stability of the documents' contents.
209 Paged feeds are lossy; that is, it is not possible to guarantee that
210 clients will be able to reconstruct the contents of the logical feed
211 at a particular time. Some entries may be added or changed as the
212 pages of the feed are accessed, without the client becoming aware of
213 them.
215 Paged feeds can be useful when the number of entries is very large,
216 infinite, or indeterminate. Clients can "page" through the feed,
217 only accessing a subset of the feed's entries as necessary.
219 For example, a search engine might make query results available as a
220 paged feed, so that queries with very large result sets do not
221 overwhelm the server, the network, or the client.
223 The feed documents in a paged feed are tied together with the
224 following link relations:
226 o "first" - A URI that refers to the furthest preceding document in
227 a series of documents.
228 o "last" - A URI that refers to the furthest following document in a
229 series of documents.
230 o "previous" - A URI that refers to the immediately preceding
231 document in a series of documents.
232 o "next" - A URI that refers to the immediately following document
233 in a series of documents.
235 Paged feed documents MUST have at least one of these link relations
236 present, and SHOULD contain as many as practical and applicable.
238 Note that URI references in link relation values may be relative, and
239 when they are used they must be absolutised, as described in Section
240 5.1 of [RFC3986].
242 3.1. Examples
244 Atom-formatted Paged Feed
246
247
248 Example Feed
249
250
251
252 2003-12-13T18:30:02Z
253
254 John Doe
255
256 urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6
257
258 Atom-Powered Robots Run Amok
259
260 urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a
261 2003-12-13T18:30:02Z
262 Some text.
263
264
265 RSS 2.0-formatted Paged Feed
267
268
270
271 Liftoff News
272 http://liftoff.nasa.gov/
273 Liftoff to Space Exploration.
274 en-us
275 Tue, 10 Jun 2003 04:00:00 GMT
276 Tue, 10 Jun 2003 09:41:01 GMT
277 http://blogs.law.harvard.edu/tech/rss
278 Weblog Editor 2.0
279 editor@example.com
280 webmaster@example.com
281
283
284 Star City
285 http://liftoff.nasa.gov/2003/06/news-starcity
286 How do Americans get ready to work with Russians
287 aboard the International Space Station? They take a crash course
288 in culture, language and protocol at Russia's .
291 Tue, 03 Jun 2003 09:39:21 GMT
292 http://liftoff.nasa.gov/2003/06/03.html#item573
293
294
295
297 4. Archived Feeds
299 An archived feed is a set of feed documents that can be combined to
300 accurately reconstruct the entries of a logical feed.
302 Unlike paged feeds, archived feeds enable clients to do this without
303 losing any entries. This is achieved by publishing a single
304 subscription document and (potentially) many archive documents.
306 A subscription document is a feed document that always contains the
307 most recently added or changed entries available in the logical feed
308 (often, the feed document that should be subscribed to).
310 Archive documents are feed documents that contain less recent entries
311 in the feed. The set of entries contained in an archive document
312 published at a particular URI SHOULD NOT change over time. Likewise,
313 the URI for a particular archive document SHOULD NOT change over
314 time.
316 These stability requirements allow clients to safely assume that if
317 they have retrieved an archive document from a particular URI once,
318 it will not meaningfully change in the future. As a result, if an
319 archive document's contents are changed, clients may not become aware
320 of it.
322 Therefore, if a publisher requires a change to be visible to all
323 users (e.g., correcting factual errors), they should consider
324 publishing the revised entry in the subscription feed, in addition to
325 (or instead of) the appropriate archive feed. Conversely,
326 unimportant changes (e.g., spelling corrections) might be only
327 effected in archive feeds.
329 Typically, a subscription feed will link to a set of archive
330 documents (also linked together) which contain progressively less
331 recent entries.
333 Clients can then "subscribe" to the feed, polling the subscription
334 document for recent changes. If a client has missed some entries,
335 the archives can be used to synchronise its state by fetching the
336 archive documents it has not yet seen.
338 The following link relations are used to tie subscription and
339 archived feeds together:
341 o "prev-archive" - A URI that refers to the immediately preceding
342 archive document.
343 o "next-archive" - A URI that refers to the immediately following
344 archive document.
345 o "current" - A URI that, when dereferenced, returns a feed document
346 containing the most recent entries in the feed.
348 Subscription documents and archive documents MUST have a "prev-
349 archive" link relation, unless there are no archives available.
351 Archive documents SHOULD have "next-archive" and "current" link
352 relations.
354 Note that URI references in link relation values may be relative, and
355 when they are used they must be absolutised, as described in Section
356 5.1 of [RFC3986].
358 Archive document SHOULD also contain an fh:archive element in their
359 head sections, to indicate that they are archives.
361 For example,
363
365 Publishers are not required to make all archive documents available;
366 they may refuse to serve (e.g., with HTTP status code 403 or 410), or
367 be unable to serve (e.g., with HTTP status code 404) an archive
368 document.
370 Clients SHOULD warn users when they are not able to reconstruct the
371 complete, logical feed (e.g., by alerting the user that an archive
372 document is unavailable, or displaying pseudo-entries that inform the
373 user that some entries may be missing).
375 4.1. Examples
377 Atom-formatted Subscription Document
379
380
381 Example Feed
382
383
384
386 2003-12-13T18:30:02Z
387
388 John Doe
389
390 urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6
391
392 Atom-Powered Robots Run Amok
393
394 urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a
395 2003-12-13T18:30:02Z
396 Some text.
397
398
399 Atom-formatted Archive Document
401
402
404 Example Feed
405
406
407
408
410 2003-11-24T12:00:00Z
411
412 John Doe
413
414 urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6
415
416 Atom-Powered Robots Scheduled To Run Amok
417
418 urn:uuid:cdef5c6d5-gff8-4ebb-assa-80dwe44efkjo
419 2003-11-24T12:00:00Z
420 Some text from an old, different entry.
421
422
423 RSS 2.0-formatted Subscription Document
425
426
427
428 Liftoff News
429 http://liftoff.nasa.gov/
430 Liftoff to Space Exploration.
431 en-us
432 Tue, 10 Jun 2003 04:00:00 GMT
433 Tue, 10 Jun 2003 09:41:01 GMT
434 http://blogs.law.harvard.edu/tech/rss
435 Weblog Editor 2.0
436 editor@example.com
437 webmaster@example.com
438
441
442 Star City
443 http://liftoff.nasa.gov/2003/06/news-starcity
444 How do Americans get ready to work with Russians
445 aboard the International Space Station? They take a crash course
446 in culture, language and protocol at Russia's
449 Tue, 03 Jun 2003 09:39:21 GMT
450 http://liftoff.nasa.gov/2003/06/03.html#item573
451
452
453
454 RSS 2.0-formatted Archive Document
456
457
459
460 Liftoff News
461 http://liftoff.nasa.gov/
462 Liftoff to Space Exploration.
463 en-us
464 Tue, 30 May 2003 08:00:00 GMT
465 Tue, 30 May 2003 10:31:52 GMT
466 http://blogs.law.harvard.edu/tech/rss
467 Weblog Editor 2.0
468 editor@example.com
469 webmaster@example.com
470
471
473
476
477 Sky watchers in Europe, Asia, and parts of
478 Alaska and Canada will experience a partial eclipse of the Sun
479 on Saturday, May 31st.
480 Fri, 30 May 2003 11:06:42 GMT
481 http://liftoff.nasa.gov/2003/05/30.html#item572
482
483
484 The Engine That Does More
485 http://liftoff.nasa.gov/2003/05/news-VASIMR.asp
486 Before man travels to Mars, NASA hopes to
487 design new engines that will let us fly through the Solar
488 System more quickly. The proposed VASIMR engine would do
489 that.
490 Tue, 27 May 2003 08:37:32 GMT
491 http://liftoff.nasa.gov/2003/05/27.html#item571
492
493
494
496 5. IANA Considerations
498 The "previous", "next" and "current" link relations have been
499 previously registered, and no IANA action regarding them is required.
501 This specification defines the following link relations:
503 o Attribute Value: prev-archive
504 o Description: A URI that refers to the immediately
505 preceding archive document.
506 o Expected display characteristics: none
507 o Security considerations: See [ this document ]
509 o Attribute Value: next-archive
510 o Description: A URI that refers to the immediately
511 following archive document.
512 o Expected display characteristics: none
513 o Security considerations: See [ this document ]
515 6. Security Considerations
517 Feeds using the mechanisms described here could be crafted in such a
518 way as to cause a client to initiate excessive (or even an unending
519 sequence of) network requests, causing denial of service (either to
520 the client, the target server, and/or intervening networks). Clients
521 can mitigate this risk by requiring user intervention after a certain
522 number of requests, or by limiting requests either according to a
523 hard limit, or with heuristics.
525 Clients should be mindful of resource limits when storing feed
526 documents. To reiterate, they are not required to always store or
527 reconstruct the feed when conforming to this specification; they only
528 need inform the user when the reconstructed feed is not complete.
530 7. Normative References
532 [RFC2119] Bradner, S., "Key words for use in
533 RFCs to Indicate Requirement Levels",
534 BCP 14, RFC 2119, March 1997.
536 [RFC3986] Berners-Lee, T., Fielding, R., and L.
537 Masinter, "Uniform Resource
538 Identifier (URI): Generic Syntax",
539 STD 66, RFC 3986, January 2005.
541 [RFC4287] Nottingham, M. and R. Sayre, "The
542 Atom Syndication Format", RFC 4287,
543 December 2005.
545 [W3C.REC-xml-infoset-20040204] Cowan, J. and R. Tobin, "XML
546 Information Set (Second Edition)",
547 W3C REC REC-xml-infoset-20040204,
548 February 2004.
550 [W3C.REC-xml-names-19990114] Bray, T., Hollander, D., and A.
552 Layman, "Namespaces in XML", W3C
553 REC REC-xml-names-19990114,
554 January 1999.
556 Appendix A. Acknowledgements
558 The author would like to thank the following people for their
559 contributions, comments and help: Danny Ayers, Thomas Broyer, Stefan
560 Eissing, David Hall, Bill de Hora, Aristotle Pagaltzis, John Panzer,
561 Dave Pawson, Garrett Rooney, Robert Sayre, James Snell, Henry Story.
563 Any errors herein remain the author's, not theirs.
565 Appendix B. Reconstructing Archived Feeds
567 One algorithm for reconstructing an archived feed into a complete,
568 logical feed (S), give the subscription document (D) follows.
570 1. Create an empty list L.
571 2. Consider the URI of the last archive document successfully stored
572 to local store S as A.
573 3. Consider the set of entries in document D as E.
574 4. If the document D has a "prev-archive" link relation value P in
575 its head section, and P is not A,
576 1. Append P to L.
577 2. Dereference P and use the resulting feed document as D.
578 5. Repeat the previous step until no new P is found.
579 6. Add all of document D's entries to the local store S, replacing
580 any entries with the same identity.
581 7. Pop the last "prev-archive" link relation from L, dereference its
582 value and use the resulting feed document as D.
583 8. Repeat the previous two steps until L is empty.
584 9. Add the entries E to the local store S, replacing any entries
585 with the same identity.
587 In these instructions, the concept of an entry's identity is format-
588 specific; e.g., in Atom, it is conveyed by the atom:id element; in
589 RSS 2, it is indicated by the guid element.
591 Author's Address
593 Mark Nottingham
595 EMail: mnot@pobox.com
596 URI: http://www.mnot.net/
598 Full Copyright Statement
600 Copyright (C) The Internet Society (2006).
602 This document is subject to the rights, licenses and restrictions
603 contained in BCP 78, and except as set forth therein, the authors
604 retain all their rights.
606 This document and the information contained herein are provided on an
607 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
608 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
609 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
610 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
611 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
612 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
614 Intellectual Property
616 The IETF takes no position regarding the validity or scope of any
617 Intellectual Property Rights or other rights that might be claimed to
618 pertain to the implementation or use of the technology described in
619 this document or the extent to which any license under such rights
620 might or might not be available; nor does it represent that it has
621 made any independent effort to identify any such rights. Information
622 on the procedures with respect to rights in RFC documents can be
623 found in BCP 78 and BCP 79.
625 Copies of IPR disclosures made to the IETF Secretariat and any
626 assurances of licenses to be made available, or the result of an
627 attempt made to obtain a general license or permission for the use of
628 such proprietary rights by implementers or users of this
629 specification can be obtained from the IETF on-line IPR repository at
630 http://www.ietf.org/ipr.
632 The IETF invites any interested party to bring to its attention any
633 copyrights, patents or patent applications, or other proprietary
634 rights that may cover technology that may be required to implement
635 this standard. Please address the information to the IETF at
636 ietf-ipr@ietf.org.
638 Acknowledgement
640 Funding for the RFC Editor function is provided by the IETF
641 Administrative Support Activity (IASA).