<?xml version="1.0" encoding="US-ASCII" ?>
<!DOCTYPE rfc SYSTEM "http://xml.resource.org/authoring/rfc2629.dtd" [
    <!ENTITY rfc1738 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.1738.xml'>
    <!ENTITY rfc2017 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2017.xml'>
    <!ENTITY rfc2046 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2046.xml'>
    <!ENTITY rfc2119 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
    <!ENTITY rfc2595 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2595.xml'>
    <!ENTITY rfc2822 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2822.xml'>
    <!ENTITY rfc2980 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2980.xml'>
    <!ENTITY rfc3405 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3405.xml'>
    <!ENTITY rfc3629 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3629.xml'>
    <!ENTITY rfc3977 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3977.xml'>
    <!ENTITY rfc3986 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3986.xml'>
    <!ENTITY rfc3987 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3987.xml'>
    <!ENTITY rfc4156 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4156.xml'>
    <!ENTITY rfc4157 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4157.xml'>
    <!ENTITY rfc4248 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4248.xml'>
    <!ENTITY rfc4266 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4266.xml'>
    <!ENTITY rfc4289 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4289.xml'>
    <!ENTITY rfc4395 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4395.xml'>
    <!ENTITY rfc4642 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4642.xml'>
    <!ENTITY rfc4643 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4643.xml'>
     <!ENTITY rfc4952 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4952.xml'>
    <!ENTITY rfcABNF PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.crocker-rfc4234bis.xml'>
    <!ENTITY rfcARCH PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.duerst-archived-at.xml'>
    <!ENTITY rfcNEWS PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-usefor-usefor.xml'>
]>

<!-- no I-D - >
    <?rfc private="Creative Commons License:      Attributions + ShareAlike" ?>
    <?rfc header="Interim draft" ?>
    <?rfc footer="draft-ellermann-news-nntp-uri-05" ?>
<! - no I-D -->

<?rfc toc="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc symrefs="yes" ?>
<?rfc strict="yes" ?>
<?rfc rfcprocack="yes" ?>

<rfc docName="draft-ellermann-news-nntp-uri-06" obsoletes="1738" category="std"
     ipr="full3978" xml:lang="en-GB-oed" ><front>
    <title abbrev="'news' and 'nntp' URIs">
        The 'news' and 'nntp' URI Schemes
    </title>
    <author initials="F." surname="Ellermann" fullname="Frank Ellermann">
        <organization>xyzzy</organization>
        <address>
            <postal>
                <street></street>
                <city>Hamburg</city>
                <region>Germany</region>
            </postal>
            <email>hmdmhdfmhdjmzdtjmzdtzktdkztdjz@gmail.com</email>
            <uri>http://purl.net/xyzzy/</uri>
        </address>
    </author>
    <date />
    <abstract><t>
        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.
    </t></abstract>

    <note title="Editorial note"><t>
        In the <xref target="abnf">collected ABNF</xref> the NEWS in RFC NEWS
        should be replaced by the RFC number for
        <xref target="I-D.ietf-usefor-usefor" />, and the ABNF in RFC ABNF
        should be replaced by the RFC number for
        <xref target="I-D.crocker-rfc4234bis" />.
        In <xref target="iana" /> RFC&rfc.number; is a placeholder
        for this memo.
    </t><t>
        This editorial note and the
        <xref target="history">document history</xref>
        should be removed before publication.
    </t></note>
</front><middle>

<section title="Introduction"><t>
    The first definition for many URI schemes appeared in
    <xref target="RFC1738" />.  This memo extracts the
    'news' and
    'nntp' URI
    schemes from it to allow that material to remain on standards track
    if <xref target="RFC1738" /> is moved to &quot;historic&quot; status.
    It belongs to a series of similar documents like
    <xref target="RFC4156" />,
    <xref target="RFC4157" />,
    <xref target="RFC4248" />, and
    <xref target="RFC4266" /> discussed on the
    <eref target="mailto:uri@w3.org" /> list.

</t><t>
    The definitions for the 'news' and
    'nntp' URI schemes given here are
    updates from <xref target="RFC1738" /> based on modern usage of these
    schemes.

</t><t>
    <xref target="RFC3986" /> specifies how to define schemes for URIs,
    it also explains the term "Uniform Resource Locator" (URL).
    The Network News Transfer Protocol (NNTP) is specified in
    <xref target="RFC3977" />. The Netnews Article
    Format is defined in <xref target="I-D.ietf-usefor-usefor" />.

</t><t>
    The key word "MUST" in this memo is to be interpreted as described in
    <xref target="RFC2119" />.  UTF-8 is specified in
    <xref target="RFC3629" />.  The syntax uses the ABNF defined in
    <xref target="I-D.crocker-rfc4234bis" />.

</t></section>

<section title="Background"><t>
    The 'news' and 'nntp'
    URI schemes identify resources on an NNTP server, individual articles,
    individual newsgroups, or sets of newsgroups.

</t><t>
    User agents like Web browsers supporting these schemes use the NNTP
    protocol to access the corresponding resources. The details how they
    do this, e.g. employing a separate or integrated newsreader, depend
    on the implementation. The default &lt;port&gt;
    associated with NNTP in <xref target="RFC3977" /> is 119.

</t><section title="'nntp' URIs"><t>
    The 'nntp' URI scheme identifies articles in
    a newsgroup on a specific NNTP server.  In <xref target="RFC3986" />
    terminology this means that 'nntp' URIs have a
    non-empty &lt;authority&gt; component, there is no default &lt;host&gt;
    as for the 'file' or 'news' URI schemes.

</t><t>
    Netnews is typically distributed among several news servers, using the
    same newsgroup names, but local article numbers.  An article available
    as number 10 in group <spanx style="verb">example</spanx>
    on server <spanx style="verb">news.example.com</spanx> 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
    are generally not allowed to access articles on an "arbitrary" server
    specified in an 'nntp' URI.

</t><t>
    For these reasons the use of the 'nntp' URI
    scheme is limited, and it's less widely supported by user agents than
    the similar 'news' URI scheme.

</t></section><section title="'news' URIs"><t>
    The 'news' URI scheme identifies articles by
    their worldwide unique <spanx style="verb">Message-ID</spanx>, independent
    of the server and the newsgroup. Newsreaders support access on articles by
    their <spanx style="verb">Message-ID</spanx>, without the
    overhead for an URI scheme. In simple cases they do this directly as 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 <spanx style="verb">Message-IDs</spanx> from similar
    constructs like other URI schemes in contexts like a plain text message
    body.

</t><t>
    The 'news' URI scheme also allows to identify
    newsgroups or sets of newsgroups independent of a specific server. For
    Netnews a group <spanx style="verb">example</spanx> has the same name
    on any server carrying this group, exotic cases involving gateways not
    withstanding. To distinguish <spanx style="verb">Message-IDs</spanx> and
    newsgroup names the 'news' URI scheme uses the
    <spanx style="verb">@</spanx> between local part (left hand side) and
    domain part (right hand side) of <spanx style="verb">Message-IDs</spanx>.

</t><t>
    <xref target="RFC1738" /> offered only one wildcard for sets of newsgropus
    in 'news' URIs, a <spanx style="verb">*</spanx>
    used to refer to "all available newsgroups". In common practice this was
    extended to varying degrees by some user agents, an NNTP extension known
    as &lt;wildmat&gt; specified in <xref target="RFC2980" />
    and now part of the base NNTP specification allows pattern matching in
    the style of the <spanx style="verb">find</spanx> command. For the
    purpose of this 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 <xref target="RFC3986" /> URI
    syntax. User agents and NNTP servers might not (yet) implement all parts
    of this new feature.

</t><t>
    Another commonly supported addition to the <xref target="RFC1738" />
    syntax is the optional specification of a server at the begin of
    'news' URIs. This optional
    &lt;authority&gt; component follows the overall
    <xref target="RFC3986" /> syntax preceded by a double slash
    <spanx style="verb">//</spanx> and terminated by the next slash
    <spanx style="verb">/</spanx>, question mark
    <spanx style="verb">?</spanx>, number sign
    <spanx style="verb">#</spanx>, or the end of the URI.

</t></section><section title="Query parts, fragments, and normalization"><t>
    This memo doesn't specify a query part introduced by a question mark
    <spanx style="verb">?</spanx> or a fragment introduced by a number sign
    for the 'news' and
    'nntp' URI schemes, but some implementations
    are known to use query parts internally to address parts of a
    composite media type <xref target="RFC2046" />
    in Multipurpose Internet Mail Extensions (MIME).

</t><t>
    There are no special <spanx style="verb">.</spanx> or
    <spanx style="verb">..</spanx> path segments in
    'news' and 'nntp'
    URLs.  Please note that <spanx style="verb">.</spanx> and
    <spanx style="verb">..</spanx> are no valid &lt;newsgroup-name&gt;s.

</t><t>
    URI producers have to percent-encode some characters as specified
    <xref target="news">below</xref>,
    otherwise they MUST treat a <spanx style="verb">Message-ID</spanx>
    without angle brackets for 'news' URLs as is,
    i.e.&nbsp;case-sensitive, preserving quoted pairs and quoted strings.

</t></section></section>

<section title="Syntax of 'nntp' URIs"><t>
    An 'nntp' URI identifies an article by its
    number in a given newsgroup of a specified server, or it identifies
    the newsgroup without article number.

</t><figure><artwork type="abnf">
    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 / "-" / "+" / "_" / "."
</artwork></figure><t>

    In the form with an &lt;article-number&gt; the URL corresponds roughly
    to the content of an &lt;xref&gt; header field as specified in
    <xref target="I-D.ietf-usefor-usefor" />, replacing its more general
    &lt;article&nbhy;locator&gt; by the &lt;article&nbhy;number&gt; used
    with NNTP.

</t><t>
    A &lt;newsgroup-name&gt; as specified in
    <xref target="I-D.ietf-usefor-usefor" />
    consists of dot-separated components.  Each
    component contains one or more letters, digits,
    <spanx style="verb">-</spanx> (hyphen-minus),
    <spanx style="verb">+</spanx>, or
    <spanx style="verb">_</spanx> (underscore).  These characters can be
    directly used in a segment of a path in a <xref target="RFC3986" />
    URI, no percent-encoding is necessary.  Example:

</t><figure><artwork>
    nntp://news.server.example/example.group.this/12345
</artwork></figure><t>

    A &lt;wildmat-exact&gt; newsgroup name as specified in
    <xref target="RFC3977" />
    allows (in theory) any &lt;UTF8-non-ascii&gt; and most printable
    US&nbhy;ASCII characters excluding
    <spanx style="verb">!</spanx>,
    <spanx style="verb">*</spanx>,
    <spanx style="verb">,</spanx>,
    <spanx style="verb">?</spanx>,
    <spanx style="verb">[</spanx>,
    <spanx style="verb">\</spanx>, and
    <spanx style="verb">]</spanx>.  To keep the syntax here simple all
    additional characters in &lt;wildmat-exact&gt; not (yet)
    allowed in <xref target="I-D.ietf-usefor-usefor" /> are covered by
    &lt;pct-encoded&gt; as defined in <xref target="RFC3986" />, although
    percent-encoding is not strictly necessary for some of these additional
    characters like <spanx style="verb">:</spanx>,
    <spanx style="verb">;</spanx>, and <spanx style="verb">~</spanx>.  Most
    of the additional characters have to be percent-encoded, example:

</t><figure><artwork>
    nntp://wild.server.example/example.group.n%2Fa/12345
</artwork></figure><t>

    In the form without &lt;article-number&gt; 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:

</t><?rfc needLines="3" ?><figure><artwork>
    nntp://news.server.example/example.group.this
    news://news.server.example/example.group.this
</artwork></figure></section>

<section title="Syntax of 'news' URIs" anchor="news"><t>
    A 'news' URI identifies an article by its
    unique <spanx style="verb">Message-ID</spanx>, or it identifies a
    set of newsgroups.  Additionally it can specify a server, without it
    a configured default server for Netnews access is used.

</t><figure><artwork type="abnf">
    newsURL         = "news:" [ server "/" ] ( article / newsgroups )
    article         = mid-left "@" mid-right
    newsgroups      = *( group-char / pct-encoded / "*" )

    mid-left        = 1*( mid-atext / "." ) /      ; &lt;dot-atom-text&gt;
                      ( "%22" mid-quote "%22" )    ; &lt;no-fold-quote&gt;
    mid-quote       = 1*( mid-atext / "." /        ; &lt;mqtext&gt; incl.
                          mid-special /            ; '\"' / "[" / "]"
                          "%5C%22" / "%5B" / "%5D" )

    mid-right       = 1*( mid-atext / "." ) /      ; &lt;dot-atom-text&gt;
                      ( "%5B" mid-literal "%5D" )  ; &lt;no-fold-literal&gt;
    mid-literal     = 1*( mid-atext / "." /        ; &lt;mdtext&gt; incl.
                          mid-special /            ; '"' / "\[" / "\]"
                          "%22" / "%5C%5B" / "%5C%5D" )

    mid-special     = "(" / ")" / "," / ":" / ";" /
                      "%3C" / "%40" / "%5C%5C"     ; "&lt;" / "@" / "\\"

    mid-atext       = ALPHA / DIGIT /              ; RFC 2822 &lt;atext&gt;
                      "!" / "$" / "&amp;" / "'" /      ; allowed sub-delims
                      "*" / "+" / "=" /            ; allowed sub-delims
                      "-" / "_" / "~" /            ; allowed unreserved
                      "%23" / "%25" / "%2F" /      ; "#" / "%" / "/"
                      "%3F" / "%5E" / "%60" /      ; "?" / "^" / "`"
                      "%7B" / "%7C" / "%7D"        ; "{" / "|" / "}"
</artwork></figure><t>
    The form identifying an &lt;article&gt; corresponds to the
    &lt;msg-id-core&gt; construct in
    <xref target="I-D.ietf-usefor-usefor" />, it's a
    <spanx style="verb">Message-ID</spanx> without angle brackets.
    Characters not directly allowed in this part of
    an <xref target="RFC3986" /> URI have to be percent-encoded,
    minimally anything that is not &lt;unreserved&gt;,
    no <spanx style="verb">:</spanx> (colon), and
    doesn't belong to the &lt;sub&nbhy;delims&gt;.

</t><t>
    Several details of a canonical &lt;msg-id-core&gt; are omitted
    here, e.g. leading, adjacent, or trailing dots are not allowed
    in &lt;dot&nbhy;atom&nbhy;text&gt;.
    The syntax mainly shows which characters MUST be percent-encoded in
    a &lt;mid-left&gt; (local part) or &lt;mid-right&gt; (domain part).

</t><t>
    Please note that <spanx style="verb">%20</spanx> (space) and
    <spanx style="verb">%3E</spanx> (<spanx style="verb">&gt;</spanx>)
    are not allowed.  A <spanx style="verb">%5C</spanx>
    (backslash <spanx style="verb">\</spanx>) can only occur in
    four combinations as shown above.  Examples:

</t><figure><artwork>
    news://server.example/ab.cd@example.com
    news:%22do..ts%22@example.com
    news:ab.cd@%5B2001:DB8::CD30%5D
</artwork></figure><t>

    The form identifying &lt;newsgroups&gt; corresponds to the
    <xref target="RFC3977" /> &lt;wildmat&nbhy;pattern&gt;, a
    newsgroup name with wildcards <spanx style="verb">*</spanx> and
    <spanx style="verb">?</spanx>.  Any <spanx style="verb">?</spanx>
    has to be be percent-encoded as <spanx style="verb">%3F</spanx>
    in this part of an URI.  Examples, the first two are equivalent:

</t><figure><artwork>
    news://news.server.example/*
    news://news.server.example/
    news://wild.server.example/example.group.th%3Fse
    news:example.group.*
    news:example.group.this
</artwork></figure><t>

    Without wildcards this form of the URL identifies a single group
    if it's not empty, and user agents would typically try to present
    an overview of the articles available in this group, probably
    somehow limiting this overview to the newest unread articles up to
    a configured maximum.

</t><t>
    With wildcards user agents could try to list matching group names
    on the specified or default server.  Some user agents support only
    a specific &lt;group&gt; without wildcards, or an optional single
    <spanx style="verb">*</spanx>.

</t></section>

<section title="Acknowledgments"><t>
    The Internet Drafts <xref target="I-D.gilman-news-url" /> by
    Alfred S. Gilman published 1998 introduced additions
    to the original <xref target="RFC1738" /> 'news'
    URI scheme.  Some of these ideas are now widely supported and reflected by
    the revised 'news' URI scheme specified here.
</t><t>
    Paul Hoffman started the series of Internet Drafts allowing to replace
    <xref target="RFC1738" />.  Charles Lindsey and Russ Allbery contributed
    all missing details about the 'nntp' URI scheme.
</t><t>
    Roy Fielding helped to figure out what is and what is not a &lt;pchar&gt;.
    Nicolas Krebs proposed to stick to the revised syntax supporting
    'news' URLs without &lt;newgroups&gt;, as in
    many other URI schemes allowing empty paths.
</t><t>
    Ken Murchison and Chris Newman helped to improve the 'snews' registration
    template.
    Bill Fenner's <spanx>xml2rfc validator</spanx> and
    <spanx>ABNF checker</spanx> were a great help in the creation
    of (not only) this memo.
</t><t>
    Henry Spencer was the driving force to adopt MIME also in NetNews,
    he registered the MIME 'message/external-body' access type
    'news-message-ID' discussed
    <xref target="mime">below</xref> 1993 for
    <xref target="son-of-1036" />.
</t></section>

<section title="Internationalization Considerations" anchor="i18n"><t>
    The URI schemes were updated to support percent-encoded UTF-8
    characters in NNTP newsgroup names as specified in
    <xref target="RFC3977" /> and <xref target="RFC3987" />.

</t><t>
    The Netnews Article Format in <xref target="I-D.ietf-usefor-usefor" />
    does not yet allow UTF-8 in &lt;newsgroup-name&gt;s, therefore
    well-known Unicode and UTF-8 security considerations are not listed
    below.  For an overview see <xref target="UTR36" /> and
    <xref target="RFC3629" />.

</t><t>
    The work on E-mail Address Internationalization (EAI) started in
    <xref target="RFC4952" /> most likely won't change the syntax of a
    <spanx style="verb">Message-ID</spanx>. The work on a successor of
    <xref target="RFC2822" /> might end up with a significantly
    simplified syntax for at least the local part (right hand side) of
    a <spanx style="verb">Message-ID</spanx>.

</t></section>

<section title="Security Considerations"><t>
    There are many security considerations for URI schemes discussed in
    <xref target="RFC3986" />.  The NNTP protocol may use passwords in the
    clear for authentication, or offer no privacy, both of which are
    considered extremely unsafe in current practice.  Alternatives and
    further security considerations with respect to NNTP are discussed
    in <xref target="RFC4642" /> and <xref target="RFC4643" />.

</t><t>
    The syntax for the 'news' and 'nntp' URI schemes contains the general
    &lt;authority&gt; construct with an optional &lt;userinfo&gt; defined
    in <xref target="RFC3986" />.  As noted in <xref target="RFC3986" /> the
    <spanx style="verb">user:password</spanx> form of a &lt;userinfo&gt;
    is deprecated.

</t><t>
    Articles on NNTP servers typically expire after some time.  After that
    time corresponding 'news' and 'nntp' URLs won't work anymore depending
    on the server.  While a <spanx style="verb">Message-ID</spanx> is
    supposed to be worldwide unique forever the NNTP protocol does not
    guarantee this.  Under various conditions depending on the servers the
    same <spanx style="verb">Message-ID</spanx> could be used for different
    articles, and attackers could try to distribute malicious content for
    known 'news' or 'nntp' URLs.  

</t><t>
    Compare <xref target="I-D.duerst-archived-at" /> for similar security 
    considerations.

</t></section>

<section title="IANA Considerations" anchor="iana"><t>
    The IANA registry of URI schemes could be updated to point to this memo
    instead of <xref target="RFC1738" /> for the
    'news' and 'nntp' URI schemes.

</t><section title="'snews' URIs"><t>
    This section contains the <xref target="RFC4395" /> template for the
    registration of the historical 'snews' scheme specified in
    <xref target="I-D.gilman-news-url" />.
</t><t>
    <list style="hanging" hangIndent="19">
    <t hangText="URI scheme name:">
    snews
</t><t hangText="Status:">
    historical
</t><t hangText="URI scheme syntax:">
    Same as for <xref target="news">'news'</xref>
</t><t hangText="URI scheme semantics:"><vspace />
    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 <spanx style="verb">nntps</spanx>
</t><t hangText="Encoding considerations:"><vspace />
    Same as for <xref target="i18n">'news'</xref>
</t><t hangText="Applications/protocols that use this URI scheme name:"><vspace />
    For some user agents 'snews' URLs trigger the
    use of <spanx style="verb">nntps</spanx> instead of NNTP for their access
    on Netnews
</t><t hangText="Interoperability considerations:"><vspace />
    This URI scheme was not widely deployed, its further use is deprecated in
    favour of ordinary 'news' URLs in conjunction
    with NNTP servers supporting <xref target="RFC4642" />
</t><t hangText="Security considerations:"><vspace />
    See <xref target="RFC4642" />, the use of a dedicated port for
    secure variants of a protocol was discouraged in <xref target="RFC2595" />
</t><t hangText="Contact:">
    <eref target="mailto:uri@w3.org" /> (URI mailing list)
</t><t hangText="Change controller:">
    IETF
</t><t hangText="References:">
    RFC&rfc.number;,
    <xref target="RFC4642" />, <xref target="I-D.gilman-news-url" />
</t></list></t></section>

<section title="nntp.uri.arpa NAPTR"><t>
    This section contains the <xref target="RFC3405" /> template for the
    registration of the 'nntp' URI scheme with
    the Dynamic Delegation Discovery System.
</t><figure><artwork>
  Key:               nntp
  Authority:         RFC&rfc.number;
  Record:
    nntp IN NAPTR 0 0 "" "" "!^nntp://([^/?#]*@)?([^:/?#]*).*$!\\2!i" .
</artwork></figure></section>

<section title="'news-message-ID' access type" anchor="mime"><t>
    The MIME 'news-message-ID' access type was erroneously listed as
    subtype.  IANA should remove 'news-message-ID' from the application
    subtype registry, and add it to the access type registry defined in
    <xref target="RFC4289" />:
    <eref target="http://www.iana.org/assignments/access-types" />.

</t><t>
    <xref target="RFC4289" /> requires an RFC for the access types
    registry. Because <xref target="son-of-1036" /> was never published
    as RFC the following paragraph quotes the relevant definition:

<list><t>
    NOTE: In the specific case where it is desired to essentially
    make another article PART of the current one, 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.

</t></list>
    Please note that 'news' URLs offer a very similar and (today)
    more common way to access articles by their Message-ID, compare
    <xref target="RFC2017" />.
</t></section></section>

</middle><back>
    <references title="Normative References">
        &rfc2119;
        &rfc3977;
        &rfc3986;
        &rfcABNF;
        &rfcNEWS;
    </references>

    <references title="Informative References">
        &rfc1738;
        &rfc2017;
        &rfc2046;
        <reference
            anchor='I-D.gilman-news-url'
            target='http://esw.w3.org/topic/UriSchemes/snews'>
        <front>
            <title>The 'news' URL scheme</title>
            <author initials='A.' surname='Gilman'
                    fullname='Alfred S. Gilman'>
                    <organization />
            </author>
            <date month='March' day='9' year='1998' />
        </front>
        <seriesInfo name='Internet' value='draft-gilman-news-url-02' />
        <format type='TXT'
                target='http://esw.w3.org/topic/UriSchemes/news?action=AttachFile&amp;do=get&amp;target=draft-gilman-news-url-02.txt' />
        </reference>
        <reference
            anchor='son-of-1036'
            target='ftp://ftp.zoo.toronto.edu/pub/news.txt.Z'>
        <front>
            <title>News Article Format and Transmission</title>
            <author initials='H.' surname='Spencer'
                    fullname='Henry Spencer'>
                    <organization />
            </author>
            <date month='June' year='1994' />
        </front>
        </reference>
        &rfc2595;
        &rfc2822;
        &rfc2980;
        &rfc3405;
        &rfc3629;
        &rfc3987;
        &rfc4156;
        &rfc4157;
        &rfc4248;
        &rfc4266;
        &rfc4289;
        &rfc4395;
        <reference
            anchor='UTR36'
            target='http://www.unicode.org/reports/tr36'>
        <front>
            <title>Unicode Security Considerations</title>
            <author initials='M.' surname='Davis'
                    fullname='Mark Davis'>
                    <organization />
            </author>
            <author initials='M.' surname='Suignard'
                    fullname='Michael Suignard'>
                    <organization />
            </author>
            <date month='August' day='11' year='2006' />
        </front>
        <seriesInfo name='Unicode Technical Reports' value='#36' />
        </reference>
        &rfc4642;
        &rfc4643;
        &rfc4952;
        &rfcARCH;
    </references>

    <section title="Collected ABNF" anchor="abnf"><t>
    In addition to the syntax given above this appendix also lists the
    sources of terms used in comments and the prose:

    </t><figure><artwork type="abnf">
    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 / "." ) /      ; &lt;dot-atom-text&gt;
                      ( "%22" mid-quote "%22" )    ; &lt;no-fold-quote&gt;
    mid-quote       = 1*( mid-atext / "." /        ; &lt;mqtext&gt; incl.
                          mid-special /            ; '\"' / "[" / "]"
                          "%5C%22" / "%5B" / "%5D" )

    mid-right       = 1*( mid-atext / "." ) /      ; &lt;dot-atom-text&gt;
                      ( "%5B" mid-literal "%5D" )  ; &lt;no-fold-literal&gt;
    mid-literal     = 1*( mid-atext / "." /        ; &lt;mdtext&gt; incl.
                          mid-special /            ; '"' / "\[" / "\]"
                          "%22" / "%5C%5B" / "%5C%5D" )

    mid-special     = "(" / ")" / "," / ":" / ";" /
                      "%3C" / "%40" / "%5C%5C"     ; "&lt;" / "@" / "\\"

    mid-atext       = ALPHA / DIGIT /              ; RFC 2822 &lt;atext&gt;
                      "!" / "$" / "&amp;" / "'" /      ; allowed sub-delims
                      "*" / "+" / "=" /            ; allowed sub-delims
                      "-" / "_" / "~" /            ; allowed unreserved
                      "%23" / "%25" / "%2F" /      ; "#" / "%" / "/"
                      "%3F" / "%5E" / "%60" /      ; "?" / "^" / "`"
                      "%7B" / "%7C" / "%7D"        ; "{" / "|" / "}"

    authority       = &lt;see RFC 3986 Section 3.2&gt;
    host            = &lt;see RFC 3986 Section 3.2.2&gt;
    pct-encoded     = &lt;see RFC 3986 Section 2.1&gt;
    port            = &lt;see RFC 3986 Section 3.2.3&gt;
    sub-delims      = &lt;see RFC 3986 Section 2.2&gt;
    unreserved      = &lt;see RFC 3986 Section 2.3&gt;
    userinfo        = &lt;see RFC 3986 Section 3.2.1&gt;

    UTF8-non-ascii  = &lt;see RFC 3977 Section 9.8&gt;
    wildmat         = &lt;see RFC 3977 Section 4.1&gt;
    wildmat-exact   = &lt;see RFC 3977 Section 4.1&gt;
    wildmat-pattern = &lt;see RFC 3977 Section 4.1&gt;

    ALPHA           = &lt;see RFC ABNF Appendix B.1&gt;
    DIGIT           = &lt;see RFC ABNF Appendix B.1&gt;

    atext           = &lt;see RFC 2822 Section 3.2.4&gt;
    dot-atom-text   = &lt;see RFC 2822 Section 3.2.4&gt;

    article-locator = &lt;see RFC NEWS Section 3.2.14&gt;
    mdtext          = &lt;see RFC NEWS Section 3.1.3&gt;
    mqtext          = &lt;see RFC NEWS Section 3.1.3&gt;
    msg-id-core     = &lt;see RFC NEWS Section 3.1.3&gt;
    newsgroup-name  = &lt;see RFC NEWS Section 3.1.4&gt;
    no-fold-literal = &lt;see RFC NEWS Section 3.1.3&gt;
    no-fold-quote   = &lt;see RFC NEWS Section 3.1.3&gt;
    xref            = &lt;see RFC NEWS Section 3.2.14&gt;
</artwork></figure></section>

    <section title="Detailed example"><t>
        Here's an example of a mail to the
        <eref target="mailto:tools.discuss@ietf.org" />
        list with <spanx style="verb">Message-ID</spanx> 
        p0624081dc30b8699bf9b@[10.20.30.108].  
    </t><t>
        <eref target="http://dir.gmane.org/gmane.ietf.tools" />
        is one of the various list archives, it converts mails
        into Netnews articles. The header of this article
        contains the following fields (among others):
    </t><figure><artwork>
        Message-ID: p0624081dc30b8699bf9b@[10.20.30.108]
        Xref: news.gmane.org gmane.ietf.tools:742
        Archived-At: &lt;http://permalink.gmane.org/gmane.ietf.tools/742&gt;
    </artwork></figure><t>
        The <spanx style="verb">Xref</spanx> 
        roughly indicates the 742nd article in newsgroup
        <eref target="news://news.gmane.org/gmane.ietf.tools" />
        on this server.  An 'nntp' URL might be 
        <eref target="nntp://news.gmane.org/gmane.ietf.tools/742" />.
        For details about the <spanx style="verb">Archived-At</spanx>
        URL see <xref target="I-D.duerst-archived-at" />.
    </t><t>
        The list software and list subscribers reading the
        list elsewhere can't predict a server specific article
        number 742 in this archive.  If they know this server
        they can however guess the corresponding
        <eref target="news://news.gmane.org/p0624081dc30b8699bf9b@%5B10.20.30.108%5D" />
        URL.
    </t><t>
        In theory the list software could use the guessed 'news' URL
        in an <spanx style="verb">Archived-At</spanx> header field, but
        if a list tries this it would likely use
        <eref target="http://mid.gmane.org/p0624081dc30b8699bf9b@%5B10.20.30.108%5D" />.
    </t><t>
        Using domain literals in a <spanx style="verb">Message-ID</spanx>
        could cause collisions.  A collision might force the mail2news 
        gateway in this example to invent a new 
        <spanx style="verb">Message-ID</spanx>, and an attempt to guess 
        the future URL on this server would then fail. 
    </t></section>

    <section title="Document History" anchor="history"><t>
        Changes in version 06:
    </t><t>
        <list style="symbols"><t>
            References to RFC 4234 replaced by 4234bis (waiting for
            its RFC and STD numbers).
        </t><t>
            Reference to <xref target="I-D.duerst-archived-at" />
            added. Added a security consideration proposed by Chris
            Newman for the <spanx style="verb">Archived-At</spanx> 
            header field also here.
        </t><t>
            Added an appendix with a detailed 'news', 'nntp',
            <spanx style="verb">Xref</spanx>, and
            <spanx style="verb">Archived-At</spanx> example.  
        </t><t>
            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 ;-)
        </t><t>
            The USEFOR WG did not adopt this draft as work item, they
            are busy to complete a document blocking the publication
            of <xref target="I-D.ietf-usefor-usefor" />.
        </t><t>
            IANA revived the <eref target="mailto:register@uri.arpa" />
            list mentioned in <xref target="RFC3405" />.
        </t><t>
            Added a note about EAI <xref target="RFC4952" /> and its most
            likely unmodified <spanx style="verb">Message-ID</spanx>
            concept.
        </t></list>
    </t><t>
        Changes in version 05:
    </t><t>
        <list style="symbols"><t>
            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
            <eref target="http://www.iana.org/assignments/access-types" />.
        </t><t>
            The 'news-message-ID' review request was posted 2007-02-19.
        </t></list>
    </t><t>
        Changes in version 04:
    </t><t>
        <list style="symbols"><t>
            Minor editorial fixes.  Just in case waiting for the IESG
            approval of <xref target="I-D.ietf-usefor-usefor" />.
            The 'snews' URI review request was posted 2006-11-10.
        </t><t>
            Two reviewers of the 'snews' registration template are now
            apparently satisfied with the 'snews' URI scheme semantics.
        </t></list>
    </t><t>
        Changes in version 03:
    </t><t>
        <list style="symbols"><t>
            The 'snews' semantics was improved after discussions with
            Chris Newman and Ken Murchinson.
        </t><t>
            Various editorial fixes proposed by Alfred H&ouml;nes.
        </t></list>
    </t><t>
        Changes in version 02:
    </t><t>
        <list style="symbols"><t>
            The referenced NNTP specifications got their RFC numbers,
            NNTP TLS <xref target="RFC4642" /> added for info to the
            security considerations.
        </t><t>
            The ABNF for an &lt;article&gt; was further simplified by
            extracting the &lt;mid-special&gt; characters used on both
            sides of the <spanx style="verb">@</spanx>, i.e.&nbsp;within a
            quoted string &lt;mid-quote&gt; for the unique part (left
            hand side) or within a literal in square brackets for the
            domain part (right hand side).  Now it's obvious that the
            differences between both sides are limited to '"',
            <spanx style="verb">[</spanx>, and
            <spanx style="verb">]</spanx> as expected.
        </t><t>
            Removed the dubious <spanx>1</spanx> at the begin of the
            &lt;newsgroups&gt; rule based on an observation by Nicolas Krebs.
        </t><t>
            Created a proper informative reference for the historical
            <xref target="I-D.gilman-news-url" />. The IETF archive offers
            only -01, a copy of -02 covering
            'snews' is now available below
            <eref target="http://esw.w3.org/topic/UriSchemes/news" />.
        </t><t>
            Other minor changes include the addition of a reference to
            <xref target="UTR36" />, and the
            <xref target="abnf">collected ABNF</xref>.
        </t><t>
            The IANA registration template for the historical
            'snews' URI scheme was added.
        </t><t>
            The IANA registration template for an
            <spanx style="verb">nntp.uri.arpa</spanx> NAPTR record was added.
            If that record is correct the existing
            <spanx style="verb">ftp.uri.arpa</spanx> and
            <spanx style="verb">http.uri.arpa</spanx> records could be updated,
            apparently they don't remove the optional &lt;userinfo&gt; at the
            moment.
        </t></list>
    </t><t>
        Changes in version 01:
    </t><t>
        <list style="symbols"><t>
            References of RFC 977 and RFC 2980 replaced by the now approved
            NNTP base document <xref target="RFC3977" />.
        </t><t>
            Security considerations updated with a reference to the now
            approved NNTP Auth document <xref target="RFC4643" />.
        </t><t>
            References of RFC 1036 and <xref target="RFC2822" /> replaced by
            the last called <xref target="I-D.ietf-usefor-usefor" />.
        </t><t>
            References of RFC 2396 removed, the jumps from
            <xref target="RFC1738" /> to
            <xref target="RFC3986" /> and from RFC 1036 to
            <xref target="I-D.ietf-usefor-usefor" /> are interesting enough
            without talking about intermediate steps.
        </t><t>
            <xref target="RFC1738" /> has no &lt;range&gt; for the
            'nntp' URI scheme, and this memo isn't
            the place to invent new tricks for a rarely used scheme.
        </t></list>
    </t><t>
        Changes in version 00:
    </t><t>
        <list style="symbols"><t>
            Derived from [I-D.hoffman-news-nntp-uri-04] after discussions
            on the URI list.  At this time what's now known as the Netnews
            Article Format <xref target="I-D.ietf-usefor-usefor" /> was
            still far from ready, and RFC977bis
            <xref target="RFC3977" /> not yet finished.
        </t></list>
    </t></section>
</back></rfc>
