| < 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 2, line 4 ¶ | skipping to change at page 2, line 6 ¶ | |||
| 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 | |||
| and officially updates the protocol specification. It clarifies some | and officially updates the protocol specification. It clarifies some | |||
| vagueness in RFC 977, includes some new base functionality, and | vagueness in RFC 977, includes some new base functionality, and | |||
| provides a specific mechanism to add standardized extensions to NNTP. | provides a specific mechanism to add standardized extensions to NNTP. | |||
| Administration | Administration | |||
| This document is a product of the NNTP Working Group, chaired by Russ | This document is a product of the NNTP Working Group, chaired by Russ | |||
| Allbery and Ned Freed. | Allbery and Ned Freed. | |||
| Author's Note | Author's Note | |||
| This document is written in XML using an NNTP-specific DTD. Custom | This document is written in XML using an NNTP-specific DTD. Custom | |||
| 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 45 ¶ | skipping to change at page 52, line 45 ¶ | |||
| [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. 15 change blocks. | ||||
| 8 lines changed or deleted | 50 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||