usefor-article-03 February 2000
[< Prev]
[TOC] [ Next >]
6.14. Xref
The Xref header is a local header (4.2.2.3) which indicates where an
article was filed by the last server to process it, and whether it is
a Replacement (6.13) for an earlier article.
Xref-content = [CFWS] server-name 1*( CFWS location )
server-name = path-identity ; see 5.6.1
location = newsgroup-name ":" article-locator
[ CFWS ( "revise" / "repost" )
":" article-locator ]
article-locator = 1*( %x21-7E ) ; US-ASCII printable characters
The server-name is included so that software can determine which
serving agent generated the header. The locations specify what
newsgroups the article was filed under (which may differ from those
in the Newsgroups header) and where it was filed under them. The
exact form of an article-locator is implementation-specific.
NOTE: The traditional form of an article-locator is a decimal
number, with articles in each newsgroup numbered consecutively
starting from 1. NNTP demands that such a model be provided, and
much other software expects it, but it seems desirable to permit
flexibility for unorthodox implementations.
Whenever an Xref header is created by an agent for an article which
includes a Replaces header with "usage=revise" or "usage=repost"
(6.13), it SHOULD include, within the location field of each
newsgroup in the Newsgroups header of whichever of the old articles
referenced in that Replaces header is still current, a corresponding
"revise:<old-article-locator>" or "repost:<old-article-locator>" for
the oldest article known to be being replaced, where <old-article-
locator> is the article-locator under which that oldest article was
filed. If the Replaces header has a "usage=replace" (explicit or
implicit) the Xref header MUST NOT include any such reference to an
<old-article-locator>.
NOTE: This is to enable reading agents to avoid showing that
article to users who have already read any of those older
articles (see 6.13). Because several replacements for a given
article may arrive in the period between attempts by a reader to
read a given newsgroup, it is useful to include the oldest one
in the Xref header. The information necessary to determine this
article can be obtained from the Xref header of the current
version of the article just before it is deleted. Observe that a
server that never received one of the replaced articles can
still generate suitable information from whichever earlier
version it actually has. This is why it is useful for a Replaces
header to mention more than one earlier article, especially when
replacements are being issued in quick succession.
NOTE: "revise" and "repost" are case-insensitive.
An agent inserting an Xref header into an article MUST delete any
previous Xref header(s). A relaying agent MAY delete it before
relaying, but otherwise it SHOULD be ignored (and usually replaced)
by any relying or serving agent receiving it.
An agent MUST use the same serving-name in Xref headers as the path-
identity it uses in Path headers.
[< Prev]
[TOC] [ Next >]
#Diff to first older
--- ../s-o-1036/Xref.out June 1994
+++ ../usefor-article-03/Xref.out February 2000
@@ -1,57 +1,61 @@
-6.12. Xref
+6.14. Xref
-The Xref header content indicates where an article was filed
-by the last relayer to process it:
+ The Xref header is a local header (4.2.2.3) which indicates where an
+ article was filed by the last server to process it, and whether it is
+ a Replacement (6.13) for an earlier article.
- Xref-content = relayer 1*( space location )
- relayer = relayer-name
+ Xref-content = [CFWS] server-name 1*( CFWS location )
+ server-name = path-identity ; see 5.6.1
location = newsgroup-name ":" article-locator
- article-locator = 1*<ASCII printable character>
+ [ CFWS ( "revise" / "repost" )
+ ":" article-locator ]
+ article-locator = 1*( %x21-7E ) ; US-ASCII printable characters
+
+ The server-name is included so that software can determine which
+ serving agent generated the header. The locations specify what
+ newsgroups the article was filed under (which may differ from those
+ in the Newsgroups header) and where it was filed under them. The
+ exact form of an article-locator is implementation-specific.
+
+ NOTE: The traditional form of an article-locator is a decimal
+ number, with articles in each newsgroup numbered consecutively
+ starting from 1. NNTP demands that such a model be provided, and
+ much other software expects it, but it seems desirable to permit
+ flexibility for unorthodox implementations.
+
+ Whenever an Xref header is created by an agent for an article which
+ includes a Replaces header with "usage=revise" or "usage=repost"
+ (6.13), it SHOULD include, within the location field of each
+ newsgroup in the Newsgroups header of whichever of the old articles
+ referenced in that Replaces header is still current, a corresponding
+ "revise:<old-article-locator>" or "repost:<old-article-locator>" for
+ the oldest article known to be being replaced, where <old-article-
+ locator> is the article-locator under which that oldest article was
+ filed. If the Replaces header has a "usage=replace" (explicit or
+ implicit) the Xref header MUST NOT include any such reference to an
+ <old-article-locator>.
+
+ NOTE: This is to enable reading agents to avoid showing that
+ article to users who have already read any of those older
+ articles (see 6.13). Because several replacements for a given
+ article may arrive in the period between attempts by a reader to
+ read a given newsgroup, it is useful to include the oldest one
+ in the Xref header. The information necessary to determine this
+ article can be obtained from the Xref header of the current
+ version of the article just before it is deleted. Observe that a
+ server that never received one of the replaced articles can
+ still generate suitable information from whichever earlier
+ version it actually has. This is why it is useful for a Replaces
+ header to mention more than one earlier article, especially when
+ replacements are being issued in quick succession.
+
+ NOTE: "revise" and "repost" are case-insensitive.
+
+ An agent inserting an Xref header into an article MUST delete any
+ previous Xref header(s). A relaying agent MAY delete it before
+ relaying, but otherwise it SHOULD be ignored (and usually replaced)
+ by any relying or serving agent receiving it.
-The relayer's name is included so that software can deter-
-mine which relayer generated the header (and specifically,
-whether it really was the one that filed the copy being
-examined). The locations specify what newsgroups the arti-
-cle was filed under (which may differ from those in the
-Newsgroups header) and where it was filed under them. The
-exact form of an article locator is implementation-specific.
-
- NOTE: Reading agents can exploit this information
- to avoid presenting the same article to a reader
- several times. The information is sometimes
- available in system databases, but having it in
- the article is convenient. Relayers traditionally
- generate an Xref header only if the article is
- cross-posted, but this is not mandatory, and there
- is at least one new application ("mirroring":
- keeping news databases on two hosts identical)
- where the header is useful in all articles.
-
-INTERNET DRAFT to be NEWS sec. 6.12
-
-
- NOTE: The traditional form of an article locator
- is a decimal number, with articles in each news-
- group numbered consecutively starting from 1.
- NNTP [rrr] demands that such a model be provided,
- and there may be other software which expects it,
- but it seems desirable to permit flexibility for
- unorthodox implementations.
-
-A relayer inserting an Xref header into an article MUST
-delete any previous Xref header. A relayer which is not
-inserting its own Xref header SHOULD delete any previous
-Xref header. A relayer MAY delete the Xref header when
-passing an article on to another relayer.
-
- NOTE: RFC 1036 specified that the Xref header was
- not transmitted when an article was passed to
- another relayer, but the major news implementa-
- tions have never obeyed this rule, and applica-
- tions like mirroring depend on this disobedience.
-
-A relayer MUST use the same name in Xref headers as it uses
-in Path headers. Reading agents MUST ignore an Xref header
-containing a relayer name that differs from the one that
-begins the path list.
+ An agent MUST use the same serving-name in Xref headers as the path-
+ identity it uses in Path headers.