rfc-5005

Feed Paging and Archiving

M. Nottingham
date2007-09 streamIETF wgnon working group statusPROPOSED STANDARD pages15 canonicalhttps://www.rfc-editor.org/rfc/rfc5005 doi10.17487/RFC5005 errataview
This specification defines three types of syndicated Web feeds that enable publication of entries across one or more feed documents. This includes "paged" feeds for piecemeal access, "archived" feeds that allow reconstruction of the feed's contents, and feeds that are explicitly "complete". [STANDARDS-TRACK]

Extracted elements (23)

design-rationale §4

Archived feeds achieve lossless reconstruction by separating a single mutable subscription document (newest entries) from immutable archive documents, allowing clients to catch up by traversing prev-archive links recursively.

design-rationale §4.1

If a publisher needs a change visible to all users (e.g., factual corrections), they should publish the revised entry in the subscription document because archive document stability means some clients may never re-fetch updated archives.

design-rationale §1

Three distinct feed types are defined because each has different trade-offs: complete feeds are useful when old entries should be discarded; paged feeds suit large/infinite/unstable entry sets needing piecemeal access; archived feeds suit long-lived entries where clients must see every one without loss.

interoperability-note §B

Although the feed extensions (fh:complete, fh:archive, link relations) are described in terms of Atom, they can also be used with RSS 2.0 by importing the fh namespace and using Atom link elements. In RSS 2.0, duplicate detection uses the guid element instead of atom:id.

normative-requirement §2 SHOULD NOT

Any entry not actually in a complete feed document SHOULD NOT be considered part of that feed.

normative-requirement §4 SHOULD

Archive documents SHOULD also have a 'next-archive' link relation unless there are no following archives available, and SHOULD indicate their subscription document via the 'current' link relation.

normative-requirement §3 SHOULD NOT

Clients SHOULD NOT present paged feeds as coherent or complete, or make assumptions to that effect, because paged feeds are lossy and entries may be added or changed while pages are being accessed.

normative-requirement §4.2 SHOULD

Clients SHOULD warn users when they are not able to reconstruct the entire logical feed, such as when an archive document is unavailable.

normative-requirement §3 MUST

Paged feed documents MUST have at least one of the 'first', 'last', 'previous', or 'next' link relations present.

normative-requirement §4.1 SHOULD

Publishers SHOULD construct feed documents to make duplicate removal unambiguous.

normative-requirement §4 MUST

Subscription and archive documents MUST have a 'prev-archive' link relation unless there are no preceding archives available.

normative-requirement §4 SHOULD NOT

The set of entries in an archive document published at a particular URI SHOULD NOT change over time, and the URI for a particular archive document SHOULD NOT change over time.

normative-requirement §4.2 SHOULD

When consuming archived feeds, if duplicate entries are found, clients SHOULD consider only the most recently updated entry to be part of the logical feed. If duplicates have the same update timestamp, the entry from the most recently updated feed document SHOULD replace others.

protocol-element §4

A subscription document always contains the most recently added or changed entries. Archive documents contain less recent entries; their contents at a given URI SHOULD NOT change over time.

protocol-element §4

Archived feeds use three link relations: 'prev-archive' (immediately preceding archive document), 'next-archive' (immediately following archive document), and 'current' (the subscription document with most recent entries).

protocol-element §4.2

In Atom-formatted archived feeds, two entries are duplicates if they have the same atom:id element. Update time is determined by atom:updated for entries and feed-level atom:updated for documents.

protocol-element §3

Paged feeds use four link relations to tie feed documents together: 'first' (furthest preceding), 'last' (furthest following), 'previous' (immediately preceding), and 'next' (immediately following document in the series).

protocol-element §4

The fh:archive element is an empty element placed in an archive document's head section to indicate that it is an archive, using the namespace 'http://purl.org/syndication/history/1.0'.

protocol-element §2

The fh:complete element, when present in a feed's head section, indicates that the feed document is a complete representation of the logical feed's entries. It is an empty element using the namespace 'http://purl.org/syndication/history/1.0'.

registry §5

This specification adds 'prev-archive' and 'next-archive' to the IANA Link Relations registry. It also requests that 'previous', 'next', and 'current' be updated to reference this document.

registry

security-consideration §6

Feeds using these mechanisms could be crafted to cause a client to initiate excessive or unending network requests, causing denial of service to the client, target server, or intervening networks. Clients should mitigate by requiring user intervention or limiting requests; servers by denying abusive requests.

security

security-consideration §6

Feeds using this mechanism have the same security considerations as Atom. Encryption and authentication can be obtained by signing/encrypting the feed, through channel mechanisms (TLS, HTTP authentication), or transport (IPsec).

security

security-consideration §6

This specification does not define what it means when a logical feed's component feed documents have different security mechanisms applied.

security