Network Working Group                                       F. Ellermann
Internet-Draft
Request for Comments: 5538                                         xyzzy
Obsoletes: 1738 (if approved)                                               April 2, 2008
Intended status: 2009
Category: Standards Track
Expires: October 4, 2008

                   The 'news' and 'nntp' URI Schemes
                    draft-ellermann-news-nntp-uri-11

Status of this This Memo

   By submitting

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this Internet-Draft, each author represents that any
   applicable patent or other IPR claims protocol.  Distribution of which he or she this memo is aware
   have been or will be disclosed, unlimited.

Copyright Notice

   Copyright (c) 2009 IETF Trust and any the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents in effect on the date of which he
   publication of this document (http://trustee.ietf.org/license-info).
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.

   This document may contain material from IETF Documents or she becomes
   aware will be disclosed, IETF
   Contributions published or made publicly available before November
   10, 2008.  The person(s) controlling the copyright in accordance with Section 6 some of BCP 79.

   Internet-Drafts are working documents this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate created outside the IETF Standards Process, except to use Internet-Drafts format
   it for publication as reference
   material an RFC or to cite them translate it into languages other
   than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on October 4, 2008. English.

Abstract

   This memo specifies the 'news' and 'nntp' Uniform Resource Identifier
   (URI) schemes that were originally defined in RFC 1738.  The purpose
   of this document is to allow RFC 1738 to be made obsolete while
   keeping the information about these schemes on standards track.

Editorial note

   In the collected ABNF (Appendix A) the NEWS in RFC NEWS should be
   replaced by the RFC number for [I-D.ietf-usefor-usefor].  In
   Section 8 RFCXXXX is a placeholder for this memo.  This note and the
   document history (Appendix C) should be removed before publication. Standards Track.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Background . . . . . . . . . . . . . . . . . . . . . . . . . .  3
     2.1.  'nntp' URIs  . . . . . . . . . . . . . . . . . . . . . . .  3
     2.2.  'news' URIs  . . . . . . . . . . . . . . . . . . . . . . .  4
     2.3.  Query parts, fragments, Parts, Fragments, and normalization Normalization  . . . . . . . .  5  4
   3.  Syntax of 'nntp' URIs  . . . . . . . . . . . . . . . . . . . .  5
   4.  Syntax of 'news' URIs  . . . . . . . . . . . . . . . . . . . .  6
   5.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . .  8
   6.  Internationalization Considerations  . . . . . . . . . . . . .  9
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . .  9
   8.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 10
     8.1.  'snews' URIs . . . . . . . . . . . . . . . . . . . . . . . 10
     8.2.  'news-message-ID' access type Access Type  . . . . . . . . . . . . . . 11
   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
     9.1.  Normative References . . . . . . . . . . . . . . . . . . . 11
     9.2.  Informative References . . . . . . . . . . . . . . . . . . 12
   Appendix A.  Collected ABNF  . . . . . . . . . . . . . . . . . . . 13
   Appendix B.  Detailed example Example  . . . . . . . . . . . . . . . . . . 15
   Appendix C.  Document History  . . . . . . . . . . . . . . . . . . 15
   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 20
   Intellectual Property and Copyright Statements . . . . . . . . . . 21

1.  Introduction

   The first definition for many URI schemes appeared appears in [RFC1738].  This
   memo extracts the 'news' and 'nntp' URI schemes from it to allow that
   material to remain on standards track the Standards Track if [RFC1738] is moved to
   "historic" status.  It belongs to a series of similar documents like
   [RFC4156], [RFC4157], [RFC4248], and [RFC4266] [RFC4266], which are discussed
   on the <mailto:uri@w3.org> list.

   The definitions for the 'news' and 'nntp' URI schemes given here are
   updates from [RFC1738] based on modern usage of these schemes.  This
   memo intentionally limits its description of the 'news' URI scheme to
   essential features supposed to work with "any browser" and NNTP Network
   News Transfer Protocol (NNTP) server.

   [RFC3986] specifies how to define schemes for URIs, URIs; it also explains
   the term "Uniform Resource Locator" (URL).  The Network News Transfer
   Protocol (NNTP) is specified in [RFC3977].  The Netnews Article
   Format is defined in [I-D.ietf-usefor-usefor]. [RFC5536].

   The key word "MUST" in this memo is to be interpreted as described in
   [RFC2119].  UTF-8 is specified in [RFC3629].  The syntax uses the
   ABNF defined in [RFC5234].

2.  Background

   The 'news' and 'nntp' URI schemes identify resources on an NNTP
   server, individual articles, individual newsgroups, or sets of
   newsgroups.

   User agents like Web browsers supporting these schemes use the NNTP
   protocol to access the corresponding resources.  The details of how
   they do this, e.g., employing a separate or integrated newsreader,
   depend on the implementation.  The default <port> associated with
   NNTP in [RFC3977] is 119.

2.1.  'nntp' URIs

   The 'nntp' URI scheme identifies articles in a newsgroup on a
   specific NNTP server.  In [RFC3986] terminology terminology, this means that
   'nntp' URIs have a non-empty <authority> component, component; there is no
   default <host> as for the 'file' or 'news' URI schemes.

   Netnews is typically distributed among several news servers, using
   the same newsgroup names, names but local article numbers.  An article
   available as number 10 in group "example" on server
   "news.example.com" has most likely a different number on any other
   server where the same article is still available.  Users allowed to
   read and post articles on "their" server may not be allowed to access
   articles on an "arbitrary" server specified in an 'nntp' URI.

   For these reasons reasons, the use of the 'nntp' URI scheme is limited, and
   it is less widely supported by user agents than the similar 'news'
   URI scheme.

2.2.  'news' URIs

   The 'news' URI scheme identifies articles by their worldwide unique
   "Message-ID", independent of the server and the newsgroup.
   Newsreaders support access to articles by their "Message-ID", without
   the overhead of an a URI scheme.  In simple cases cases, they do this directly
   as an NNTP client of a default or currently used server as configured
   by the user.  More general user agents use the 'news' URI scheme to
   distinguish "Message-IDs" from similar constructs such as other URI
   schemes in contexts such as a plain text message body.

   The 'news' URI scheme also allows the identification of newsgroups or
   sets of newsgroups independent of a specific server.  For Netnews Netnews, a
   group "example" has the same name on any server carrying this group,
   exotic cases involving gateways not withstanding.  To distinguish
   "Message-IDs" and newsgroup names names, the 'news' URI scheme relies on
   the "@" between local part (left hand (left-hand side) and domain part (right (right-
   hand side) of "Message-IDs".

   [RFC1738] offered only one wildcard for sets of newsgroups in 'news'
   URIs, a "*" used to refer to "all available newsgroups".  In common
   practice
   practice, this was extended to varying degrees by different user
   agents, an
   agents.  An NNTP extension known as <wildmat> <wildmat>, specified in [RFC2980]
   and now part of the base NNTP specification specification, allows pattern matching
   in the style of the [POSIX] "find" command.  For the purpose of this
   memo
   memo, this means that some additional special characters have to be
   allowed in 'news' URIs, some of them percent-encoded as required by
   the overall [RFC3986] URI syntax.  User agents and NNTP servers not
   yet compliant with [RFC3977] do not implement all parts of this new
   feature.

   Another commonly supported addition to the [RFC1738] syntax is the
   optional specification of a server at the beginning of 'news' URIs.
   This optional <authority> component follows the overall [RFC3986]
   syntax
   syntax, preceded by a double slash "//" and terminated by the next
   slash "/", question mark "?", number sign "#", or the end of the URI.

2.3.  Query parts, fragments, Parts, Fragments, and normalization Normalization

   Fragments introduced by a number sign "#" are specified in [RFC3986], [RFC3986];
   the semantics is independent of the URI scheme, and the resolution
   depends on the media type.

   This memo doesn't specify a query part introduced by a question mark
   "?" for the 'news' and 'nntp' URI schemes, but some implementations
   are known to use query parts instead of fragments internally to
   address parts of a composite media type [RFC2046] in Multipurpose
   Internet Mail Extensions (MIME).

   There are no special "." or ".." path segments in 'news' and 'nntp'
   URLs.  Please note that "." and ".." are not valid <newsgroup-name>s.

   URI producers have to percent-encode some characters as specified
   below (Section 4), otherwise 4); otherwise, they MUST treat a "Message-ID" without
   angle brackets for 'news' URLs as is, i.e. i.e., case-sensitive,
   preserving quoted pairs and quoted strings.

3.  Syntax of 'nntp' URIs

   An 'nntp' URI identifies an article by its number in a given
   newsgroup on a specified server, or it identifies the newsgroup
   without article number.

       nntpURL         = "nntp:" server "/" group [ "/" article-number ]
       server          = "//" authority               ; see RFC 3986
       group           = 1*( group-char / pct-encoded )
       article-number  = 1*16DIGIT                    ; see RFC 3977
       group-char      = ALPHA / DIGIT / "-" / "+" / "_" / "."

   In the form with an <article-number> <article-number>, the URL corresponds roughly to
   the content of an <xref> header field as specified in
   [I-D.ietf-usefor-usefor], [RFC5536],
   replacing its more general <article-locator> by the <article-number>
   used with the NNTP.

   A <newsgroup-name> as specified in [I-D.ietf-usefor-usefor] [RFC5536] consists of dot-separated dot-
   separated components.  Each component contains one or more letters,
   digits, "-" (hyphen-minus), "+", or "_" (underscore).  These
   characters can be directly used in a segment of a path in a an
   [RFC3986]
   URI, URI; no percent-encoding is necessary.  Example:

       nntp://news.server.example/example.group.this/12345

   A <wildmat-exact> newsgroup name as specified in [RFC3977] allows (in
   theory) any <UTF8-non-ascii>, see <UTF8-non-ascii> (see Section 6, 6) and most printable
   US-ASCII characters characters, excluding "!", "*", ",", "?", "[", "\", and "]".
   However, [I-D.ietf-usefor-usefor] [RFC5536] does not (yet) permit characters outside of
   <group-char> and so, to keep the syntax simple, the additional
   characters are here covered by <pct-encoded> as defined in [RFC3986],
   since most of them have to be percent-encoded anyway (with a few exceptions
   exceptions, such as ":", ";", and "~").  For example:  Example:

       nntp://wild.server.example/example.group.n%2Fa/12345

   In the form without <article-number> <article-number>, the URL identifies a single
   group on the specified server.  This is also possible with an
   equivalent 'news' URL, and the latter is better supported by user
   agents, example:
   agents.  Example:

       nntp://news.server.example/example.group.this
       news://news.server.example/example.group.this

4.  Syntax of 'news' URIs

   A 'news' URI identifies an article by its unique "Message-ID", or it
   identifies a set of newsgroups.  Additionally  Additionally, it can specify a
   server,
   server; without it the 'news' URI, a configured default server for
   Netnews access is used.

   The syntax shown below explains how to transform a syntactically
   valid <newsgroup-name> or <msg-id-core> as specified in
   [I-D.ietf-usefor-usefor] [RFC5536]
   into the corresponding <newsgroups> or <article> part of a 'news'
   URI.  The transformation from a formally valid 'news' URI back to a
   <newsgroup-name> or <msg-id-core> is not guaranteed to be
   syntactically valid.

     newsURL         = "news:" [ server "/" ] ( article / newsgroups )
     article         = mid-left "@" mid-right
     newsgroups      = *( group-char / pct-encoded / "*" )

     mid-left        = 1*( mid-atext / "." ) /      ; <dot-atom-text>
                       ( "%22" mid-quote "%22" )    ; <no-fold-quote>
     mid-quote       = 1*( mid-atext / "." /        ; <mqtext> incl.
                           mid-special /            ; '\"' / "[" / "]"
                           "%5C%22" / "%5B" / "%5D" )

     mid-right       = 1*( mid-atext / "." ) /      ; <dot-atom-text>
                       ( "%5B" mid-literal "%5D" )  ; <no-fold-literal>
     mid-literal     = 1*( mid-atext / "." /        ; <mdtext> incl.
                           mid-special /            ; '"' / "\[" / "\]"
                           "%22" / "%5C%5B" / "%5C%5D" )

     mid-special     = "(" / ")" / "," / ":" / ";" /
                       "%3C" / "%40" / "%5C%5C"     ; "<" / "@" / "\\"

     mid-atext       = ALPHA / DIGIT /              ; RFC 2822 <atext>
                       "!" / "$" / "&" / "'" /      ; allowed sub-delims
                       "*" / "+" / "=" /            ; allowed sub-delims
                       "-" / "_" / "~" /            ; allowed unreserved
                       "%23" / "%25" / "%2F" /      ; "#" / "%" / "/"
                       "%3F" / "%5E" / "%60" /      ; "?" / "^" / "`"
                       "%7B" / "%7C" / "%7D"        ; "{" / "|" / "}"

   The form identifying an <article> corresponds to the <msg-id-core>
   construct in [I-D.ietf-usefor-usefor], [RFC5536]; it is a "Message-ID" without angle brackets.
   Characters not directly allowed in this part of an [RFC3986] URI have
   to be percent-encoded, minimally anything that is not <unreserved>,
   no ":" (colon), and doesn't belong to the <sub-delims>.

   Several details of a canonical <msg-id-core> are omitted here, e.g.,
   leading, adjacent, or trailing dots are not allowed in
   <dot-atom-text>.  The syntax mainly shows which characters MUST be
   percent-encoded in a <mid-left> (local part) or <mid-right> (domain
   part).

   Please note that "%20" (space) and "%3E" (">") are not allowed.  A
   "%5C" (backslash (backslash, "\") can only occur in four combinations combinations, as shown
   above.  Examples:

       news://server.example/ab.cd@example.com
       news:%22do..ts%22@example.com
       news:ab.cd@%5B2001:DB8::CD30%5D

   The form identifying <newsgroups> corresponds to the [RFC3977]
   <wildmat-pattern>, a newsgroup name with wildcards "*" and "?".  Any
   "?" has to be percent-encoded as "%3F" in this part of an a URI.
   Examples, the
   Examples (the first two are equivalent: equivalent):

       news://news.server.example/*
       news://news.server.example/
       news://wild.server.example/example.group.th%3Fse
       news:example.group.*
       news:example.group.this

   Without wildcards wildcards, this form of the URL identifies a single group if
   it is not empty, and user empty.  User agents would typically try to present an
   overview of the articles available in this group, likely somehow
   limiting this overview to the newest unread articles up to a
   configured maximum.

   With wildcards wildcards, user agents could try to list matching group names on
   the specified or default server.  Some user agents support only a
   specific <group> without wildcards, or an optional single "*".

   As noted above (Section 2.2) 2.2), the presence of an "@" in a 'news' URI
   disambiguates <article> and <newsgroups> for URI consumers.  The new
   <message-id> construct specified in [RFC3977] does not require an
   "@".  Since [RFC0822] [RFC0822], the "Message-ID" syntax was has been closely
   related to the syntax of mail addresses with an "@" separating left left-
   hand side (local part of addresses, unique part of message
   identifiers) and
   right hand right-hand side (domain part), and this memo sticks
   to the known [RFC1738] practice.

5.  Acknowledgments

   Henry Spencer was the driving force to adopt MIME in Netnews, Netnews; he
   registered the MIME 'message/external-body' access type
   'news-message-ID'
   'news-message-ID', discussed below (Section 8.2) 8.2), in 1993 for
   [son-of-1036].

   The Internet Drafts [I-D.gilman-news-url]
   [SON-OF-1036].

   "The 'news' URL scheme" [GILMAN], by Alfred S. Gilman
   published 1998 (March 1998),
   introduced additions to the original [RFC1738] 'news' URI scheme.
   Some of these ideas are now widely supported and reflected by the
   revised 'news' URI scheme specified here.

   Thanks to Alfred Hoenes, Charles Lindsey, Clive Feather, Chris
   Newman, Ken Murchinson, Kjetil T. Homme, Lars Magne Ingebrigtsen,
   Martin Duerst, Matt Seitz, Nicolas Krebs, Paul Hoffman, Pasi Eronen,
   Roy T. Fielding, Russ Allbery, Stephane Bortzmeyer, and Tom Petch for
   their feedback, contributions, or encouragement.

   Bill Fenner's _xml2rfc validator_ and _ABNF checker_ were a great
   help in the creation of (not only) this memo.  The same goes for
   various great _IETF tools_ written by Henrik Levkowetz.

6.  Internationalization Considerations

   The URI schemes were updated to support percent-encoded UTF-8
   characters in NNTP newsgroup names as specified in [RFC3977] and
   [RFC3987].

   The Netnews Article Format in [I-D.ietf-usefor-usefor] [RFC5536] does not yet allow UTF-8 in <newsgroup-name>s, therefore
   <newsgroup-name>s; therefore, well-known Unicode and UTF-8 security
   considerations are not listed below.  For an overview overview, see [UTR36]
   and [RFC3629].

   The work on E-mail Email Address Internationalization (EAI) (EAI), started in
   [RFC4952]
   [RFC4952], is not expected to change the syntax of a "Message-ID".
   The work on a successor of [RFC2822] hopefully ends up with a
   simplified syntax for both sides of a "Message-ID".

7.  Security Considerations

   There are many security considerations for URI schemes discussed in
   [RFC3986].  The NNTP protocol may use passwords in the clear for
   authentication,
   authentication or offer no privacy, both of which are considered
   extremely unsafe in current practice.  Alternatives and further
   security considerations with respect to the NNTP are discussed in
   [RFC4642] and [RFC4643].

   The syntax for the 'news' and 'nntp' URI schemes contains the general
   <authority> construct with an optional <userinfo> defined in
   [RFC3986].  As noted in [RFC3986] [RFC3986], the "user:password" form of a
   <userinfo> is deprecated.

   Articles on NNTP servers typically expire after some time.  After
   that time time, corresponding 'news' and 'nntp' URLs won't may not work anymore
   depending on the server.  While a "Message-ID" is supposed to be
   worldwide unique forever forever, the NNTP protocol does not guarantee this.
   Under various conditions depending on the servers servers, the same
   "Message-ID" could be used for different articles, and attackers
   could try to distribute malicious content for known 'news' or 'nntp'
   URLs.

   If an a URI does not match the generic syntax in [RFC3986] [RFC3986], it is
   invalid, and broken URIs can cause havoc.  Compare [RFC5064] for
   similar security considerations.

8.  IANA Considerations

   The IANA registry of URI schemes should be has been updated to point to this
   memo instead of [RFC1738] for the 'news' and 'nntp' URI schemes.

8.1.  'snews' URIs

   This section contains the [RFC4395] template for the registration of
   the historical 'snews' scheme specified in [I-D.gilman-news-url]. [GILMAN].

   URI scheme name:   snews

   Status:            historical

   URI scheme syntax: Same as for 'news' (Section 4)

   URI scheme semantics:
                      Syntactically equivalent to 'news', but using NNTP
                      over SSL/TLS (SSL/TLS with security layer is
                      negotiated immediately after establishing the TCP
                      connection) with a default port of 563, registered
                      as "nntps"

   Encoding considerations:
                      Same as for 'news' (Section 6)

   Applications/protocols that use this URI scheme name:
                      For some user agents agents, 'snews' URLs trigger the use
                      of "nntps" instead of NNTP for their access on
                      Netnews

   Interoperability considerations:
                      This URI scheme was not widely deployed, deployed; its
                      further use is deprecated in favour favor of ordinary
                      'news' URLs in conjunction with NNTP servers
                      supporting [RFC4642]

   Security considerations:
                      See [RFC4642], [RFC4642]; the use of a dedicated port for
                      secure variants of a protocol was discouraged in
                      [RFC2595]

   Contact:           <mailto:uri@w3.org> (URI mailing list)

   Change controller: IETF
   References:        RFCXXXX,        RFC 5538, [RFC4642], [I-D.gilman-news-url] [GILMAN]

8.2.  'news-message-ID' access type Access Type

   The MIME 'news-message-ID' access type was erroneously listed as
   subtype.  IANA should remove has removed 'news-message-ID' from the application
   subtype registry, and add has added it to the access type types registry
   defined in
   [RFC4289]: <http://www.iana.org/assignments/access-types>. [RFC4289].

   [RFC4289] requires an RFC for the access types registry.  Because
   [son-of-1036]
   [SON-OF-1036] was never published as RFC an RFC, the following paragraph
   quotes the relevant definition:

      NOTE: In the specific case where it is desired to essentially make
      another article PART of the current one, e.g. e.g., for annotation of
      the other article, MIME's "message/external-body" convention can
      be used to do so without actual inclusion. "news-message-ID" was
      registered as a standard external-body access method, with a
      mandatory NAME parameter giving the message ID and an optional
      SITE parameter suggesting an NNTP site that might have the article
      available (if it is not available locally), by IANA 22 June 1993.

   Please note that 'news' URLs offer a very similar and (today) more
   common way to access articles by their Message-ID, Message-ID; compare [RFC2017].

9.  References

9.1.  Normative References

   [RFC2119]      Bradner, S., "Key words for use in RFCs to Indicate
                  Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3977]      Feather, C., "Network News Transfer Protocol (NNTP)",
                  RFC 3977, October 2006.

   [RFC3986]      Berners-Lee, T., Fielding, R., and L. Masinter,
                  "Uniform Resource Identifier (URI): Generic Syntax",
                  STD 66, RFC 3986, January 2005.

   [RFC5234]      Crocker, D. and P. Overell, "Augmented BNF for Syntax
                  Specifications: ABNF", STD 68, RFC 5234, January 2008.

   [I-D.ietf-usefor-usefor]

   [RFC5536]      Lindsey, C., "Netnews Article Format",
              draft-ietf-usefor-usefor-12 (work in progress),
              January 2007. RFC 5536,
                  April 2009.

9.2.  Informative References

   [GILMAN]       Gilman, A., "The 'news' URL scheme", Work in Progress,
                  March 1998.

   [POSIX]        Institute of Electrical and Electronics Engineers,
                  "The Open Group Base Specifications Issue 6",
                  IEEE Standard 1003.1, 2004 edition.

   [RFC0822]      Crocker, D., "Standard for the format of ARPA Internet
                  text messages", STD 11, RFC 822, August 1982.

   [son-of-1036]
              Spencer, H., "News Article Format and Transmission",
              June 1994, <ftp://ftp.zoo.toronto.edu/pub/news.txt.Z>.

   [RFC1738]      Berners-Lee, T., Masinter, L., and M. McCahill,
                  "Uniform Resource Locators (URL)", RFC 1738,
                  December 1994.

   [RFC2017]      Freed, N. and K. Moore, "Definition of the URL MIME
                  External-Body Access-Type", RFC 2017, October 1996.

   [RFC2046]      Freed, N. and N. Borenstein, "Multipurpose Internet
                  Mail Extensions (MIME) Part Two: Media Types",
                  RFC 2046, November 1996.

   [I-D.gilman-news-url]
              Gilman, A., "The 'news' URL scheme",
              Internet draft-gilman-news-url-02, March 1998,
              <http://esw.w3.org/topic/UriSchemes/snews>.

   [RFC2595]      Newman, C., "Using TLS with IMAP, POP3 and ACAP",
                  RFC 2595, June 1999.

   [RFC2822]      Resnick, P., "Internet Message Format", RFC 2822,
                  April 2001.

   [RFC2980]      Barber, S., "Common NNTP Extensions", RFC 2980,
                  October 2000.

   [RFC3629]      Yergeau, F., "UTF-8, a transformation format of ISO
                  10646", STD 63, RFC 3629, November 2003.

   [POSIX]    Institute of Electrical and Electronics Engineers, "The
              Open Group Base Specifications Issue 6", IEEE Standard
              1003.1, 2004 edition,
              <http://www.unix.org/single_unix_specification/>.

   [RFC3987]      Duerst, M. and M. Suignard, "Internationalized
                  Resource Identifiers (IRIs)", RFC 3987, January 2005.

   [RFC4156]      Hoffman, P., "The wais URI Scheme", RFC 4156,
                  August 2005.

   [RFC4157]      Hoffman, P., "The prospero URI Scheme", RFC 4157,
                  August 2005.

   [RFC4248]      Hoffman, P., "The telnet URI Scheme", RFC 4248,
                  October 2005.

   [RFC4266]      Hoffman, P., "The gopher URI Scheme", RFC 4266,
                  November 2005.

   [RFC4289]      Freed, N. and J. Klensin, "Multipurpose Internet Mail
                  Extensions (MIME) Part Four: Registration Procedures",
                  BCP 13, RFC 4289, December 2005.

   [RFC4395]      Hansen, T., Hardie, T., and L. Masinter, "Guidelines
                  and Registration Procedures for New URI Schemes",
                  BCP 115, 35, RFC 4395, February 2006.

   [UTR36]    Davis, M. and M. Suignard, "Unicode Security
              Considerations", Unicode Technical Reports #36,
              August 2006, <http://www.unicode.org/reports/tr36>.

   [RFC4642]      Murchison, K., Vinocur, J., and C. Newman, "Using
                  Transport Layer Security (TLS) with Network News
                  Transfer Protocol (NNTP)", RFC 4642, October 2006.

   [RFC4643]      Vinocur, J. and K. Murchison, "Network News Transfer
                  Protocol (NNTP) Extension for Authentication",
                  RFC 4643, October 2006.

   [RFC4952]      Klensin, J. and Y. Ko, "Overview and Framework for
                  Internationalized Email", RFC 4952, July 2007.

   [RFC5064]      Duerst, M., "The Archived-At Message Header Field",
                  RFC 5064, December 2007.

Appendix A.  Collected ABNF

   In addition to the syntax given above this appendix also lists

   [SON-OF-1036]  Spencer, H., "Son of 1036: News Article Format and
                  Transmission", Work in Progress, May 2009.

   [UTR36]        Davis, M. and M. Suignard, "Unicode Security
                  Considerations", Unicode Technical Reports #36,
                  August 2006.

Appendix A.  Collected ABNF

   In addition to the syntax given above, this appendix also lists the
   sources of terms used in comments and the prose:

     nntpURL         = "nntp:" server "/" group [ "/" article-number ]
     server          = "//" authority               ; see RFC 3986
     group           = 1*( group-char / pct-encoded )
     article-number  = 1*16DIGIT                    ; see RFC 3977
     group-char      = ALPHA / DIGIT / "-" / "+" / "_" / "."

     newsURL         = "news:" [ server "/" ] ( article / newsgroups )
     article         = mid-left "@" mid-right
     newsgroups      = *( group-char / pct-encoded / "*" )

     mid-left        = 1*( mid-atext / "." ) /      ; <dot-atom-text>
                       ( "%22" mid-quote "%22" )    ; <no-fold-quote>
     mid-quote       = 1*( mid-atext / "." /        ; <mqtext> incl.
                           mid-special /            ; '\"' / "[" / "]"
                           "%5C%22" / "%5B" / "%5D" )

     mid-right       = 1*( mid-atext / "." ) /      ; <dot-atom-text>
                       ( "%5B" mid-literal "%5D" )  ; <no-fold-literal>
     mid-literal     = 1*( mid-atext / "." /        ; <mdtext> incl.
                           mid-special /            ; '"' / "\[" / "\]"
                           "%22" / "%5C%5B" / "%5C%5D" )

     mid-special     = "(" / ")" / "," / ":" / ";" /
                       "%3C" / "%40" / "%5C%5C"     ; "<" / "@" / "\\"

     mid-atext       = ALPHA / DIGIT /              ; RFC 2822 <atext>
                       "!" / "$" / "&" / "'" /      ; allowed sub-delims
                       "*" / "+" / "=" /            ; allowed sub-delims
                       "-" / "_" / "~" /            ; allowed unreserved
                       "%23" / "%25" / "%2F" /      ; "#" / "%" / "/"
                       "%3F" / "%5E" / "%60" /      ; "?" / "^" / "`"
                       "%7B" / "%7C" / "%7D"        ; "{" / "|" / "}"

     authority       = <see RFC 3986 Section 3.2>
     host            = <see RFC 3986 Section 3.2.2>
     pct-encoded     = <see RFC 3986 Section 2.1>
     port            = <see RFC 3986 Section 3.2.3>
     sub-delims      = <see RFC 3986 Section 2.2>
     unreserved      = <see RFC 3986 Section 2.3>
     userinfo        = <see RFC 3986 Section 3.2.1>

     message-id      = <see RFC 3977 Section 9.8>
     UTF8-non-ascii  = <see RFC 3977 Section 9.8>
     wildmat         = <see RFC 3977 Section 4.1>
     wildmat-exact   = <see RFC 3977 Section 4.1>
     wildmat-pattern = <see RFC 3977 Section 4.1>

     ALPHA           = <see RFC 5234 Appendix B.1>
     DIGIT           = <see RFC 5234 Appendix B.1>

     atext           = <see RFC 2822 Section 3.2.4>
     dot-atom-text   = <see RFC 2822 Section 3.2.4>

     article-locator = <see RFC NEWS 5536 Section 3.2.14>
     mdtext          = <see RFC NEWS 5536 Section 3.1.3>
     mqtext          = <see RFC NEWS 5536 Section 3.1.3>
     msg-id-core     = <see RFC NEWS 5536 Section 3.1.3>
     newsgroup-name  = <see RFC NEWS 5536 Section 3.1.4>
     no-fold-literal = <see RFC NEWS 5536 Section 3.1.3>
     no-fold-quote   = <see RFC NEWS 5536 Section 3.1.3>
     xref            = <see RFC NEWS 5536 Section 3.2.14>

Appendix B.  Detailed example Example

   Here is an example of a mail to the <mailto:tools.discuss@ietf.org>
   list with "Message-ID" <p0624081dc30b8699bf9b@[10.20.30.108]>.

   <http://dir.gmane.org/gmane.ietf.tools> is one of the various list
   archives,
   archives; it converts mails mail into Netnews articles.  The header of this
   article contains the following fields (among others):

          Message-ID: <p0624081dc30b8699bf9b@[10.20.30.108]>
          Xref: news.gmane.org gmane.ietf.tools:742
          Archived-At: <http://permalink.gmane.org/gmane.ietf.tools/742>

   The "Xref" roughly indicates the 742nd article in newsgroup
   <news://news.gmane.org/gmane.ietf.tools> on this server.  An 'nntp'
   URL might be <nntp://news.gmane.org/gmane.ietf.tools/742>.  For
   details about the "Archived-At" URL URL, see [RFC5064].

   The list software and list subscribers reading the list elsewhere
   can't predict a server specific server-specific article number 742 in this archive.
   If they know this server server, they can however guess the corresponding
   <news://news.gmane.org/p0624081dc30b8699bf9b@%5B10.20.30.108%5D> URL.

   In theory theory, the list software could use the guessed 'news' URL in an
   "Archived-At" header field, but if a list tries this this, it would likely
   use <http://mid.gmane.org/p0624081dc30b8699bf9b@%5B10.20.30.108%5D>.

   Using domain literals in a "Message-ID" could cause collisions.  A
   collision might force the mail2news gateway in this example to invent
   a new "Message-ID", and an attempt to guess the future URL on this
   server would then fail.

Appendix C.  Document History

   Changes in version 11:

   o  Clarified that the semantics of fragments is never defined by an
      URI scheme, but depends on the media type.  Minor tweaks to make
      the point that using query parts for this purpose is not state of
      the art.

   o  Replaced the remains of the four letter word introduced in version
      08 by a proper [POSIX] reference.

   o  Added a forward pointer to Section 6 as explanation why
      <group-char> does not exactly mirror the <newsgroup-name> syntax.

   o  Added a disclaimer to Section 4 that the shown 'news' URI syntax
      is actually a superset of the corresponding <newsgroup-name> and
      <msg-id-core> syntax, and in no way intended to redefine the
      normative source.

   o  After some discussions about adding news.uri.arpa to the
      nntp.uri.arpa registration for the Dynamic Delegation Discovery
      System (DDDS) folks preferred to have no DDDS registration for
      NNTP at all at this time.  DDDS registrations for existing URI
      schemes are possible when applications need them, proactive DDDS
      registrations are unnecessary.

   o  Thanks to Lars for tolerating Appendix B as real example.

   Changes in version 10:

   o  Fixed three editorial nits found in the Last Call, especially
      changed "does not more require" via "does no more require" to
      "does not require" based on Last Call feedback.  Appendix D of
      [RFC3977] does not mention this point.

   Changes in version 09:

   o  Several modifications based on feedback from Tom Petch and
      Stephane Bortzmeyer.  Updated the references to [RFC5064] and
      STD 68 [RFC5234].

   o  Obfuscated a four letter word introduced in version 08 after a
      discussion on the IETF IPR WG list.

   o  The note (Section 6) about the successor of [RFC2822] now states
      that hopefully *both* sides of the "Message-ID" syntax will be
      simplified.  Some details also affecting SMTP (Simple Mail
      Transfer Protocol) are still under discussion.

   o  Clive Feather reported that [RFC3977] does not require an "@" in
      its new <message-id> construct.  As this is a major deviation from
      among others STD 11 [RFC0822], [RFC1738], [son-of-1036],
      [I-D.gilman-news-url], [RFC2822], [I-D.ietf-usefor-usefor], and
      what existing URI consumers based on these documents expect it
      cannot be simply adopted in a memo describing common practice.  An
      additional note (Section 4) corresponding to an older note
      (Section 2.2) explains this deviation.

   o  Various I-D nits are apparently false positives, but using two
      different spell-checkers helped.

   Changes in version 08:

   o  Many editorial and stylistic improvements proposed by Charles
      Lindsey adopted wholesale.

   o  Added another URI security consideration.  Added another note why
      this memo does not try to cover more NNTP features.  Refrained
      from adding expectations what future NNTP servers will do.  The
      author hopes that Netnews will survive, and that this memo helps.
      Adding features known to not work everywhere could be
      counterproductive.

   o  Rejected a proposal to "undocument" 'snews'.  In 2006 folks on the
      URI list preferred "document and deprecate".  At this time 'snews'
      was supported by at least two servers and two user agents.

   o  Sticked to the DDDS registration of 'nntp' in the style of the
      existing 'ftp', 'http', and 'mailto' DDDS records as a clerical
      task.

   o  Rejected a proposal to deviate from the <msg-id-core> syntax in
      the normative reference [I-D.ietf-usefor-usefor] reflecting a
      consensus of the IETF USEFOR WG formed after lengthy discussions.

   Changes in version 07:

   o  Fixed two bugs introduced in version 06, Kjetil T. Homme spotted
      the worst error, thanks.  Rearranged the credits adding Henrik's
      IETF tools.

   o  I-D nit about a missing reference for
      [I-D.hoffman-news-nntp-uri-04] ignored, this string will go away
      together with the document history (Appendix C).

   o  The I-D submission tool added an editorial note following the
      abstract to the meta data of version 06, manual override attempt
      for version 07.

   o  Review request sent to register@uri.arpa, this mail didn't make it
      yet to <http://www.iana.org/list-archives/register-uri/>.

   Changes in version 06:

   o  Reference to [RFC5064] added.  Added a security consideration
      proposed by Chris Newman for the "Archived-At" header field also
      here.

   o  Added an appendix with a detailed 'news', 'nntp', "Xref", and
      "Archived-At" example.

   o  Use a more reliable e-mail address (and thanks for the feedback
      from somebody who figured the new address out following obscure
      contact or rev="made" links ;-)

   o  The USEFOR WG did not adopt this draft as work item, they are busy
      to complete a document blocking the publication of
      [I-D.ietf-usefor-usefor].

   o  IANA revived the <mailto:register@uri.arpa> list mentioned in the
      DDDS BCP.

   o  Added a note about EAI [RFC4952] and its most likely unmodified
      "Message-ID" concept.

   Changes in version 05:

   o  Added an attempt to cleanup the erroneous MIME application subtype
      'news-message-ID' registration.  This was meant to be a MIME
      'message/external-body' access type as published in
      <http://www.iana.org/assignments/access-types>.

   o  The 'news-message-ID' review request was posted 2007-02-19.

   Changes in version 04:

   o  Minor editorial fixes.  Just in case waiting for the IESG approval
      of [I-D.ietf-usefor-usefor].  The 'snews' URI review request was
      posted 2006-11-10.

   o  Two reviewers of the 'snews' registration template are now
      apparently satisfied with the 'snews' URI scheme semantics.

   Changes in version 03:

   o  The 'snews' semantics was improved after discussions with Chris
      Newman and Ken Murchinson.

   o  Various editorial fixes proposed by Alfred Hoenes.

   Changes in version 02:

   o  The referenced NNTP specifications got their RFC numbers, NNTP TLS
      [RFC4642] added for info to the security considerations.

   o  The ABNF for an <article> was further simplified by extracting the
      <mid-special> characters used on both sides of the "@",
      i.e. within a quoted string <mid-quote> for the unique part (left
      hand side) or within a literal in square brackets for the domain
      part (right hand side).  Now it is obvious that the differences
      between both sides are limited to '"', "[", and "]" as expected.

   o  Removed the dubious _1_ at the begin of the <newsgroups> rule
      based on an observation by Nicolas Krebs.

   o  Created a proper informative reference for the historical
      [I-D.gilman-news-url].  The IETF archive offers only -01, a copy
      of -02 covering 'snews' is now available below
      <http://esw.w3.org/topic/UriSchemes/news>.

   o  Other minor changes include the addition of a reference to
      [UTR36], and the collected ABNF (Appendix A).

   o  The IANA registration template for the historical 'snews' URI
      scheme was added.

   o  The IANA registration template for an "nntp.uri.arpa" NAPTR record
      was added.  If that record is correct the existing "ftp.uri.arpa"
      and "http.uri.arpa" records could be updated, apparently they
      don't remove the optional <userinfo> at the moment.

   Changes in version 01:

   o  References of RFC 977 and RFC 2980 replaced by the now approved
      NNTP base document [RFC3977].

   o  Security considerations updated with a reference to the now
      approved NNTP Auth document [RFC4643].

   o  References of RFC 1036 and [RFC2822] replaced by the last called
      [I-D.ietf-usefor-usefor].

   o  References of RFC 2396 removed, the jumps from [RFC1738] to
      [RFC3986] and from RFC 1036 to [I-D.ietf-usefor-usefor] are
      interesting enough without talking about intermediate steps.

   o  [RFC1738] has no <range> for the 'nntp' URI scheme, and this memo
      isn't the place to invent new tricks for a rarely used scheme.

   Changes in version 00:

   o  Derived from [I-D.hoffman-news-nntp-uri-04] after discussions on
      the URI list.  At this time what is now known as the Netnews
      Article Format [I-D.ietf-usefor-usefor] was still far from ready,
      and RFC977bis [RFC3977] not yet finished.

Author's Address

   Frank Ellermann
   xyzzy
   Hamburg, Germany

   Email:

   EMail: hmdmhdfmhdjmzdtjmzdtzktdkztdjz@gmail.com
   URI:   http://purl.net/xyzzy/

Full Copyright Statement

   Copyright (C) The IETF Trust (2008).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.

Acknowledgment

   This document was produced using xml2rfc v1.33 (of
   http://xml.resource.org/) from a source in RFC-2629 XML format.