draft-ietf-nntpext-base-26.txt   draft-ietf-nntpext-base-27.txt 
NNTP C. Feather NNTP C. Feather
Internet-Draft Thus plc Internet-Draft Thus plc
Expires: November 21, 2005 May 20, 2005 Updates: 2980 (if approved) June 8, 2005
Obsoletes: 977 (if approved)
Expires: December 10, 2005
Network News Transfer Protocol Network News Transfer Protocol
draft-ietf-nntpext-base-26 draft-ietf-nntpext-base-27
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 33 skipping to change at page 1, line 35
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on November 21, 2005. This Internet-Draft will expire on December 10, 2005.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2005). Copyright (C) The Internet Society (2005).
Abstract Abstract
The Network News Transfer Protocol (NNTP) has been in use in the The Network News Transfer Protocol (NNTP) has been in use in the
Internet for a decade and remains one of the most popular protocols Internet for a decade and remains one of the most popular protocols
(by volume) in use today. This document is a replacement for RFC 977 (by volume) in use today. This document is a replacement for RFC 977
skipping to change at page 3, line 5 skipping to change at page 2, line 23
software is used to convert this to RFC 2629 [RFC2629] format, and software is used to convert this to RFC 2629 [RFC2629] format, and
then the public "xml2rfc" package to further reduce this to text, then the public "xml2rfc" package to further reduce this to text,
nroff source, and HTML. nroff source, and HTML.
No perl was used in producing this document. No perl was used in producing this document.
Rights Rights
UNIX is a registered trademark of The Open Group. UNIX is a registered trademark of The Open Group.
Note to the RFC Editor
The normative reference to RFC 2234 [RFC2234] and the informative
reference to RFC 2629 [RFC2629] may be replaced by
draft-crocker-abnf-rfc2234bis and draft-mrose-writing-rfcs
respectively should either or both of those documents reach RFC
status before this one.
The informative references to [NNTP-AUTH], [NNTP-STREAM], and [NNTP-
TLS] are documents which are expected to be published simultaneously
with this one and so can be replaced by references to the resulting
RFCs.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 6 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 6
2. Notation . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2. Notation . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3. Basic Concepts . . . . . . . . . . . . . . . . . . . . . . . 9 3. Basic Concepts . . . . . . . . . . . . . . . . . . . . . . . 9
3.1. Commands and Responses . . . . . . . . . . . . . . . . . 9 3.1. Commands and Responses . . . . . . . . . . . . . . . . . 9
3.1.1. Multi-line data blocks . . . . . . . . . . . . . . . 10 3.1.1. Multi-line data blocks . . . . . . . . . . . . . . . 10
3.2. Response Codes . . . . . . . . . . . . . . . . . . . . . 11 3.2. Response Codes . . . . . . . . . . . . . . . . . . . . . 11
3.2.1. Generic Response Codes . . . . . . . . . . . . . . . 13 3.2.1. Generic Response Codes . . . . . . . . . . . . . . . 13
3.2.1.1. Examples . . . . . . . . . . . . . . . . . . . . 14 3.2.1.1. Examples . . . . . . . . . . . . . . . . . . . . 14
skipping to change at page 5, line 8 skipping to change at page 5, line 8
12.4. DNS Spoofing . . . . . . . . . . . . . . . . . . . . . . 109 12.4. DNS Spoofing . . . . . . . . . . . . . . . . . . . . . . 109
12.5. UTF-8 issues . . . . . . . . . . . . . . . . . . . . . . 109 12.5. UTF-8 issues . . . . . . . . . . . . . . . . . . . . . . 109
12.6. Caching of capability lists . . . . . . . . . . . . . . . 110 12.6. Caching of capability lists . . . . . . . . . . . . . . . 110
13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 112 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 112
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 115 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 115
14.1. Normative References . . . . . . . . . . . . . . . . . . 115 14.1. Normative References . . . . . . . . . . . . . . . . . . 115
14.2. Informative References . . . . . . . . . . . . . . . . . 115 14.2. Informative References . . . . . . . . . . . . . . . . . 115
A. Interaction with other specifications . . . . . . . . . . . . 117 A. Interaction with other specifications . . . . . . . . . . . . 117
A.1. Header folding . . . . . . . . . . . . . . . . . . . . . 117 A.1. Header folding . . . . . . . . . . . . . . . . . . . . . 117
A.2. Message-IDs . . . . . . . . . . . . . . . . . . . . . . . 117 A.2. Message-IDs . . . . . . . . . . . . . . . . . . . . . . . 117
A.3. Article posting . . . . . . . . . . . . . . . . . . . . . 118 A.3. Article posting . . . . . . . . . . . . . . . . . . . . . 119
B. Summary of Commands . . . . . . . . . . . . . . . . . . . . . 120 B. Summary of Commands . . . . . . . . . . . . . . . . . . . . . 120
C. Summary of Response Codes . . . . . . . . . . . . . . . . . . 122 C. Summary of Response Codes . . . . . . . . . . . . . . . . . . 122
D. Changes from RFC 977 . . . . . . . . . . . . . . . . . . . . 127 D. Changes from RFC 977 . . . . . . . . . . . . . . . . . . . . 127
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 129 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 129
Intellectual Property and Copyright Statements . . . . . . . . . 130 Intellectual Property and Copyright Statements . . . . . . . . . 130
1. Introduction 1. Introduction
This document specifies the Network News Transfer Protocol (NNTP), This document specifies the Network News Transfer Protocol (NNTP),
which is used for the distribution, inquiry, retrieval, and posting which is used for the distribution, inquiry, retrieval, and posting
skipping to change at page 50, line 26 skipping to change at page 50, line 26
[C] GROUP misc.test [C] GROUP misc.test
[S] 211 1234 3000234 3002322 misc.test [S] 211 1234 3000234 3002322 misc.test
[C] ARTICLE [C] ARTICLE
[S] 220 3000234 <45223423@example.com> [S] 220 3000234 <45223423@example.com>
[S] Path: pathost!demo!whitehouse!not-for-mail [S] Path: pathost!demo!whitehouse!not-for-mail
[S] From: "Demo User" <nobody@example.net> [S] From: "Demo User" <nobody@example.net>
[S] Newsgroups: misc.test [S] Newsgroups: misc.test
[S] Subject: I am just a test article [S] Subject: I am just a test article
[S] Date: 6 Oct 1998 04:38:40 -0500 [S] Date: 6 Oct 1998 04:38:40 -0500
[S] Organization: An Example Net, Uncertain, Texas [S] Organization: An Example Net, Uncertain, Texas
[S] Message-ID: <411@example.net> [S] Message-ID: <45223423@example.com>
[S] [S]
[S] This is just a test article. [S] This is just a test article.
[S] . [S] .
Example of a successful retrieval of an article by message-id: Example of a successful retrieval of an article by message-id:
[C] ARTICLE <45223423@example.com> [C] ARTICLE <45223423@example.com>
[S] 220 0 <45223423@example.com> [S] 220 0 <45223423@example.com>
[S] Path: pathost!demo!whitehouse!not-for-mail [S] Path: pathost!demo!whitehouse!not-for-mail
[S] From: "Demo User" <nobody@example.net> [S] From: "Demo User" <nobody@example.net>
[S] Newsgroups: misc.test [S] Newsgroups: misc.test
[S] Subject: I am just a test article [S] Subject: I am just a test article
[S] Date: 6 Oct 1998 04:38:40 -0500 [S] Date: 6 Oct 1998 04:38:40 -0500
[S] Organization: An Example Net, Uncertain, Texas [S] Organization: An Example Net, Uncertain, Texas
[S] Message-ID: <411@example.net> [S] Message-ID: <45223423@example.com>
[S] [S]
[S] This is just a test article. [S] This is just a test article.
[S] . [S] .
Example of an unsuccessful retrieval of an article by message-id: Example of an unsuccessful retrieval of an article by message-id:
[C] ARTICLE <i.am.not.there@example.com> [C] ARTICLE <i.am.not.there@example.com>
[S] 430 No Such Article Found [S] 430 No Such Article Found
Example of an unsuccessful retrieval of an article by number: Example of an unsuccessful retrieval of an article by number:
skipping to change at page 52, line 44 skipping to change at page 52, line 44
[C] GROUP misc.test [C] GROUP misc.test
[S] 211 1234 3000234 3002322 misc.test [S] 211 1234 3000234 3002322 misc.test
[C] HEAD [C] HEAD
[S] 221 3000234 <45223423@example.com> [S] 221 3000234 <45223423@example.com>
[S] Path: pathost!demo!whitehouse!not-for-mail [S] Path: pathost!demo!whitehouse!not-for-mail
[S] From: "Demo User" <nobody@example.net> [S] From: "Demo User" <nobody@example.net>
[S] Newsgroups: misc.test [S] Newsgroups: misc.test
[S] Subject: I am just a test article [S] Subject: I am just a test article
[S] Date: 6 Oct 1998 04:38:40 -0500 [S] Date: 6 Oct 1998 04:38:40 -0500
[S] Organization: An Example Net, Uncertain, Texas [S] Organization: An Example Net, Uncertain, Texas
[S] Message-ID: <411@example.net> [S] Message-ID: <45223423@example.com>
[S] . [S] .
Example of a successful retrieval of the headers of an article by Example of a successful retrieval of the headers of an article by
message-id: message-id:
[C] HEAD <45223423@example.com> [C] HEAD <45223423@example.com>
[S] 221 0 <45223423@example.com> [S] 221 0 <45223423@example.com>
[S] Path: pathost!demo!whitehouse!not-for-mail [S] Path: pathost!demo!whitehouse!not-for-mail
[S] From: "Demo User" <nobody@example.net> [S] From: "Demo User" <nobody@example.net>
[S] Newsgroups: misc.test [S] Newsgroups: misc.test
[S] Subject: I am just a test article [S] Subject: I am just a test article
[S] Date: 6 Oct 1998 04:38:40 -0500 [S] Date: 6 Oct 1998 04:38:40 -0500
[S] Organization: An Example Net, Uncertain, Texas [S] Organization: An Example Net, Uncertain, Texas
[S] Message-ID: <411@example.net> [S] Message-ID: <45223423@example.com>
[S] . [S] .
Example of an unsuccessful retrieval of the headers of an article by Example of an unsuccessful retrieval of the headers of an article by
message-id: message-id:
[C] HEAD <i.am.not.there@example.com> [C] HEAD <i.am.not.there@example.com>
[S] 430 No Such Article Found [S] 430 No Such Article Found
Example of an unsuccessful retrieval of the headers of an article by Example of an unsuccessful retrieval of the headers of an article by
number: number:
skipping to change at page 85, line 6 skipping to change at page 85, line 6
There are no leading or trailing spaces in the output. There are no leading or trailing spaces in the output.
Note that the 7 fixed lines describe the 2nd to 8th fields of the Note that the 7 fixed lines describe the 2nd to 8th fields of the
OVER output. The "full" suffix (which may use either uppercase, OVER output. The "full" suffix (which may use either uppercase,
lowercase, or a mix) is a reminder that the corresponding fields lowercase, or a mix) is a reminder that the corresponding fields
include the header name. include the header name.
This command MAY generate different results if used more than once in This command MAY generate different results if used more than once in
a session. a session.
If the OVER command is not implemented, the meaning of the output
from this command is not specified but it must still meet the above
syntactic requirements.
8.4.3. Examples 8.4.3. Examples
Example of LIST OVERVIEW.FMT output corresponding to the example OVER Example of LIST OVERVIEW.FMT output corresponding to the example OVER
output above, using the preferred format: output above, using the preferred format:
[C] LIST OVERVIEW.FMT [C] LIST OVERVIEW.FMT
[S] 215 Order of fields in overview database. [S] 215 Order of fields in overview database.
[S] Subject: [S] Subject:
[S] From: [S] From:
[S] Date: [S] Date:
skipping to change at page 91, line 16 skipping to change at page 91, line 16
available for the first form of the HDR command; available for the first form of the HDR command;
o if the RANGE argument is specified, the results MUST be those o if the RANGE argument is specified, the results MUST be those
available for the second and third forms of the HDR command; available for the second and third forms of the HDR command;
o if no argument is specified, the results MUST be those available o if no argument is specified, the results MUST be those available
in all forms of the HDR command (that is, it MUST only list those in all forms of the HDR command (that is, it MUST only list those
items listed in both the previous cases). items listed in both the previous cases).
If the server does not treat the various forms differently, then it If the server does not treat the various forms differently, then it
MUST always produce the same results and ignore any argument. MUST always produce the same results and ignore any argument.
If the HDR command is not implemented, the meaning of the output from
this command is not specified but it must still meet the above
syntactic requirements.
8.6.3. Examples 8.6.3. Examples
Example of an implementation providing access to only a few headers: Example of an implementation providing access to only a few headers:
[C] LIST HEADERS [C] LIST HEADERS
[S] 215 headers supported: [S] 215 headers supported:
[S] Subject [S] Subject
[S] Message-ID [S] Message-ID
[S] Xref [S] Xref
[S] . [S] .
skipping to change at page 114, line 4 skipping to change at page 114, line 4
Other people who contributed to this document include: Other people who contributed to this document include:
Matthias Andree Matthias Andree
Greg Andruk Greg Andruk
Daniel Barclay Daniel Barclay
Maurizio Codogno Maurizio Codogno
Mark Crispin Mark Crispin
Andrew Gierth Andrew Gierth
Juergen Helbing Juergen Helbing
Scott Hollenbeck Scott Hollenbeck
Urs Janssen
Charles Lindsey Charles Lindsey
Ade Lovett Ade Lovett
David Magda David Magda
Ken Murchison Ken Murchison
Francois Petillon Francois Petillon
Peter Robinson Peter Robinson
Rob Siemborski Rob Siemborski
Howard Swinehart Howard Swinehart
Ruud van Tol Ruud van Tol
Jeffrey Vinocur Jeffrey Vinocur
Eric Warmelink
The author thanks them all and apologises to anyone omitted. The author thanks them all and apologises to anyone omitted.
Finally, the present author gratefully acknowledges the vast amount Finally, the present author gratefully acknowledges the vast amount
of work put into previous drafts by the previous author: of work put into previous drafts by the previous author:
Stan Barber <sob@academ.com> Stan Barber <sob@academ.com>
14. References 14. References
skipping to change at page 118, line 44 skipping to change at page 118, line 44
or determine one from the article contents. However, whichever it or determine one from the article contents. However, whichever it
does it SHOULD ensure that, if the IHAVE command is repeated with the does it SHOULD ensure that, if the IHAVE command is repeated with the
same argument and article, it will be recognized as a duplicate. same argument and article, it will be recognized as a duplicate.
If an article does not contain a message-id that the server can If an article does not contain a message-id that the server can
identify, it MUST synthesize one. This could, for example, be a identify, it MUST synthesize one. This could, for example, be a
simple sequence number or based on the date and time that the article simple sequence number or based on the date and time that the article
arrived. When handling email or Netnews articles, a Message-ID arrived. When handling email or Netnews articles, a Message-ID
header SHOULD be added to ensure global consistency and uniqueness. header SHOULD be added to ensure global consistency and uniqueness.
Note that, because the message-id might not have been derived from
the Message-ID header in the article, the following example is
legitimate (though unusual):
[C] HEAD <45223423@example.com>
[S] 221 0 <45223423@example.com>
[S] Path: pathost!demo!whitehouse!not-for-mail
[S] Message-ID: <1234@example.net>
[S] From: "Demo User" <nobody@example.net>
[S] Newsgroups: misc.test
[S] Subject: I am just a test article
[S] Date: 6 Oct 1998 04:38:40 -0500
[S] Organization: An Example Net, Uncertain, Texas
[S] .
A.3. Article posting A.3. Article posting
As far as NNTP is concerned, the POST and IHAVE commands provide the As far as NNTP is concerned, the POST and IHAVE commands provide the
same basic facilities in a slightly different way. However they have same basic facilities in a slightly different way. However they have
rather different intentions. rather different intentions.
The IHAVE command is intended for transmitting conforming articles The IHAVE command is intended for transmitting conforming articles
between a system of NNTP servers, with all articles perhaps also between a system of NNTP servers, with all articles perhaps also
conforming to another specification (e.g. all articles are Netnews conforming to another specification (e.g. all articles are Netnews
articles). It is expected that the client will have already done any articles). It is expected that the client will have already done any
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/