idnits 2.17.1
draft-nottingham-atompub-feed-history-01.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 363.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 340.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 347.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 353.
** 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 (June 30, 2005) is 6874 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: 4 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 June 30, 2005
4 Expires: January 1, 2006
6 Feed History: Enabling Stateful Syndication
7 draft-nottingham-atompub-feed-history-01
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 1, 2006.
34 Copyright Notice
36 Copyright (C) The Internet Society (2005).
38 Abstract
40 This document specifies mechanisms that allow feed publishers to give
41 hints about the nature of the feed's statefulness, and a means of
42 retrieving "missed" entries from a stateful feed.
44 1. Introduction
46 Syndication documents (e.g., those in formats such as Atom and RSS)
47 usually only contain the last several entries in a longer-lived
48 channel (or "feed") of information. Often, consuming software keeps
49 copies of all entries that have been previously seen, effectively
50 keeping a history of the feed's contents.
52 However, not all feeds benefit from this practice; in some, old
53 entries are not relevant to the current contents of the feed. For
54 example, it's not desireable to keep history in this manner with a
55 "top ten" feed; showing old entries would imply that the previous
56 number one is now number eleven, and so forth.
58 Feeds that encourage this practice have a different problem. If
59 consuming software does not poll often enough, some entries may be
60 missed, causing them to be silently omitted. For some applications,
61 this is a serious error on its own. Even in non-critical
62 applications, this phenomenon can cause publishers to make Feed
63 Documents contain more entries than reasonably necessary, just to
64 assure that consumers have an amply large window in which to
65 reconstruct the feed's state.
67 This document specifies mechanisms that allow feed publishers to give
68 hints as to the nature of the feed with regard to state, and a means
69 of retrieving "missed" entries from a stateful feed. Although it
70 refers to Atom normatively, the mechanisms described herein can be
71 used with similar syndication formats, such as the various flavours
72 of RSS.
74 2. Notational Conventions
76 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
77 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
78 document are to be interpreted as described in BCP 14, [RFC2119], as
79 scoped to those conformance targets.
81 In this specification, "subscription document" refers to an Atom Feed
82 Document or similar syndication format (e.g., RSS) that is intended
83 to be subscribed to; i.e., it contains the most recent entries
84 available in the feed.
86 In this specification, "archive document" refers to an Atom Feed
87 Document or similar syndication format (e.g., RSS) that is archived;
88 i.e., the set of entries inside it does not change over time. Note
89 that some entries in the archive document may also be present in the
90 subscription document; in other words, some (but not necessarily all)
91 "live" entries might already be archived.
93 In this specification, "head section" refers to the children of a
94 feed document's document-wide metadata container; e.g., the child
95 elements of the atom:feed element in an Atom Feed Document.
97 This specification uses XML Namespaces to uniquely identify XML
98 element names. It uses the following namespace prefix for the
99 indicated namespace URI;
101 "fh": [[TBD]]
103 This specification uses terms from the XML Infoset. However, this
104 specification uses a shorthand; the phrase "Information Item" is
105 omitted when naming Element Information Items. Therefore, when this
106 specification uses the term "element," it is referring to an Element
107 Information Item in Infoset terms.
109 3. The 'fh:stateful' Element
111 The fh:stateful element indicates whether the Feed is stateful, and
112 MAY occur in a subscription document's head section. Its content
113 MUST be either "true" or "false". Whitespace in its content MUST be
114 ignored by processors.
116 For example,
118 true
120 If the content of the fh:stateful element is "false", it indicates
121 that the subscription document is a complete representation of the
122 entire feed; previous entries SHOULD NOT be considered part of the
123 feed by consumers.
125 For example, a feed that represents a ranking that varies over time,
126 such as "Top Twenty Records" or "Most Popular Items" should be marked
127 with a fh:stateful element containing "false".
129 If the content of the fh:stateful element is "true", it indicates
130 that the subscription document is a potentially partial
131 representation of the entire feed; previous entries MUST be
132 considered part of the feed by consumers.
134 For example, a feed that represents a chronological list, such as
135 "ExampleCo Press Releases" or "Widget Project Updates" should be
136 marked with a fh:stateful element containing "true".
138 A subscription document whose fh:stateful element contains "true"
139 MUST contain a fh:prev element, unless there are no previous entries
140 in the feed. A subscription document whose fh:stateful element
141 contains "false" MUST NOT contain a fh:prev element.
143 4. The 'fh:prev' Element
145 The fh:prev element conveys the location of an archive of previous
146 entries in the feed, and MAY occur in a subscription document's head
147 section. It MUST occur in an archive document's head section, unless
148 there are no previous entries in the feed.
150 Its content MUST be a URI reference indicating the previous archive
151 document's location.
153 For example,
155 http://www.example.com/feed/archive/2005/05
157 5. State Reconstruction
159 When presented with a partial representation of a feed, a consumer
160 MAY reconstruct the entire feed in a local store by following these
161 steps, starting with the subscription document as the current
162 document:
164 1. Add all of the entries in the current document to the store.
165 2. Dereference the fh:prev URI, if present. If it is not present,
166 stop processing.
167 3. Using the dereferenced archive document as the current document,
168 start at step one (i.e., apply these steps recursively).
170 An implementation MAY stop when it encounters an fh:prev URI whose
171 entries have been successfully stored beforehand when following this
172 process.
174 Note that implementations MAY cache archive documents and/or use a
175 different method of reconstructing state, as long as the result is
176 the same as that achieved by following these steps.
178 User-Agents SHOULD warn when they do not have the complete state of a
179 feed (e.g., by alerting the user that an archive document is
180 unavailable, or inserting pseudo-entries that inform the user that
181 some entries may be missing).
183 Note that publishers are not required to make all archive documents
184 available.
186 6. Examples
188 Atom Subscription Document with History
190
191
193 Example Feed
194
195 2003-12-13T18:30:02Z
196
197 John Doe
198
199 urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6
200 true
201 http://example.org/2003/11/index.atom
203
204 Atom-Powered Robots Run Amok
205
206 urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a
207 2003-12-13T18:30:02Z
208 Some text in a new, fresh entry.
209
211
212 Atom Archive Document with History
214
215
217 Example Feed
218
219 2003-11-24T12:00:00Z
220
221 John Doe
222
223 urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6
224 http://example.org/2003/10/index.atom
226
227 Atom-Powered Robots Scheduled To Run Amok
228
229 urn:uuid:cd3272ef-b09c-42fd-806b-e25580e59b39
230 2003-11-24T12:00:00Z
231 Some text from an old, different entry.
232
234
235 RSS 2.0 Subscription Document with History
237
238
239
240 Liftoff News
241 http://liftoff.msfc.nasa.gov/
242 Liftoff to Space Exploration.
243 en-us
244 Tue, 10 Jun 2003 04:00:00 GMT
245 Tue, 10 Jun 2003 09:41:01 GMT
246 http://blogs.law.harvard.edu/tech/rss
247 Weblog Editor 2.0
248 editor@example.com
249 webmaster@example.com
250 true
251 http://liftoff.msfc.nasa.gov/2003/05/feed.rss>
253
254 Star City
255 http://liftoff.msfc.nasa.gov/2003/06/news-starcity
256 How do Americans get ready to work with Russians
257 aboard the International Space Station? They take a crash course
258 in culture, language and protocol at Russia's Star
260 City.
261 Tue, 03 Jun 2003 09:39:21 GMT
262 http://liftoff.msfc.nasa.gov/2003/06/03.html#item573
263
264
265
266 RSS 2.0 Archive Document with History
268
269
270
271 Liftoff News
272 http://liftoff.msfc.nasa.gov/
273 Liftoff to Space Exploration.
274 en-us
275 Tue, 30 May 2003 08:00:00 GMT
276 Tue, 30 May 2003 10:31:52 GMT
277 http://blogs.law.harvard.edu/tech/rss
278 Weblog Editor 2.0
279 editor@example.com
280 webmaster@example.com
281 true
282 http://liftoff.msfc.nasa.gov/2003/04/feed.rss>
284
285 Sky watchers in Europe, Asia, and parts of
286 Alaska and Canada will experience a partial eclipse of the Sun
287 on Saturday, May 31st.
288 Fri, 30 May 2003 11:06:42 GMT
289 http://liftoff.msfc.nasa.gov/2003/05/30.html#item572
290
291
292 The Engine That Does More
293 http://liftoff.msfc.nasa.gov/2003/05/news-VASIMR.asp
294 Before man travels to Mars, NASA hopes to
295 design new engines that will let us fly through the Solar
296 System more quickly. The proposed VASIMR engine would do
297 that.
298 Tue, 27 May 2003 08:37:32 GMT
299 http://liftoff.msfc.nasa.gov/2003/05/27.html#item571
300
301
302
304 7. Security Considerations
306 Feeds using the mechanisms described here could be crafted in such a
307 way as to cause a User-Agent to initiate excessive (or even an
308 unending sequence of) network requests, causing denial of service
309 (either to the User-Agent, the target server, and/or intervening
310 networks). This risk can be mitigated by requiring user intervention
311 after a certain number of requests, or by limiting requests either
312 according to a hard limit, or with heuristics.
314 User-Agents should be mindful of resource limits when storing feed
315 state; to reiterate, they are not required to always store or
316 reconstruct feed state when conforming to this specification; they
317 only need inform the user when state is partial.
319 8. Normative References
321 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
322 Requirement Levels", BCP 14, RFC 2119, March 1997.
324 Author's Address
326 Mark Nottingham
328 Email: mnot@pobox.com
329 URI: http://www.mnot.net/
331 Intellectual Property Statement
333 The IETF takes no position regarding the validity or scope of any
334 Intellectual Property Rights or other rights that might be claimed to
335 pertain to the implementation or use of the technology described in
336 this document or the extent to which any license under such rights
337 might or might not be available; nor does it represent that it has
338 made any independent effort to identify any such rights. Information
339 on the procedures with respect to rights in RFC documents can be
340 found in BCP 78 and BCP 79.
342 Copies of IPR disclosures made to the IETF Secretariat and any
343 assurances of licenses to be made available, or the result of an
344 attempt made to obtain a general license or permission for the use of
345 such proprietary rights by implementers or users of this
346 specification can be obtained from the IETF on-line IPR repository at
347 http://www.ietf.org/ipr.
349 The IETF invites any interested party to bring to its attention any
350 copyrights, patents or patent applications, or other proprietary
351 rights that may cover technology that may be required to implement
352 this standard. Please address the information to the IETF at
353 ietf-ipr@ietf.org.
355 Disclaimer of Validity
357 This document and the information contained herein are provided on an
358 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
359 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
360 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
361 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
362 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
363 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
365 Copyright Statement
367 Copyright (C) The Internet Society (2005). This document is subject
368 to the rights, licenses and restrictions contained in BCP 78, and
369 except as set forth therein, the authors retain all their rights.
371 Acknowledgment
373 Funding for the RFC Editor function is currently provided by the
374 Internet Society.