<?xml version="1.0" encoding="US-ASCII" ?>
<!DOCTYPE rfc SYSTEM "http://xml.resource.org/authoring/rfc2629.dtd" [
    <!ENTITY rfc0822 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.0822.xml'>
    <!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 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 rfc5064 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5064.xml'>
    <!ENTITY rfc5234 PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5234.xml'>
    <!ENTITY rfcNEWS PUBLIC ''
    'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-usefor-usefor.xml'>
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>

<!-- no I-D - >
    <?rfc private="Creative Commons License:      Attributions + ShareAlike" ?>
    <?rfc header="Interim draft" ?>
    <?rfc footer="draft-ellermann-news-nntp-uri-11" ?>
<! - 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-11" 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" />.
        In <xref target="iana" /> RFC&rfc.number; is a placeholder
        for this memo.  This 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. This memo intentionally limits its description of the 'news'
    URI scheme to essential features supposed to work with "any browser"
    and NNTP server.
</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="RFC5234" />.

</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 of 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
    may not be 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 is less widely supported by user agents than
    the similar 'news' URI scheme.

</t></section><section title="'news' URIs" anchor="disambiguation"><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 to articles by
    their <spanx style="verb">Message-ID</spanx>, without the
    overhead of 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 such as other URI schemes in contexts such as a plain text message
    body.

</t><t>
    The 'news' URI scheme also allows the identification of
    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 relies on 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 newsgroups
    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 different 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 <xref target="POSIX" />
    <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 not yet compliant with
    <xref target="RFC3977" /> do not 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 beginning 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>
    Fragments introduced by a number sign <spanx style="verb">#</spanx>
    are specified in <xref target="RFC3986" />, the semantics is
    independent of the URI scheme, the resolution depends on the media
    type.

</t><t>
    This memo doesn't specify a query part introduced by a question mark
    <spanx style="verb">?</spanx>
    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 <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 not 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 on 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;,
    see <xref target="i18n" />,
    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>.
    However, <xref target="I-D.ietf-usefor-usefor" /> does not (yet) permit
    characters outside of &lt;group-char&gt; and so, to keep the syntax
    simple, the additional characters are here covered by &lt;pct-encoded&gt;
    as defined in <xref target="RFC3986" />, since most of them have to be
    percent-encoded anyway (with a few exceptions such as
    <spanx style="verb">:</spanx>,
    <spanx style="verb">;</spanx>, and <spanx style="verb">~</spanx>).
    For 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><t>
    The syntax shown below explains how to transform a syntactically
    valid &lt;newsgroup-name&gt; or &lt;msg-id-core&gt; as specified
    in <xref target="I-D.ietf-usefor-usefor" /> into the
    corresponding &lt;newsgroups&gt; or &lt;article&gt; part of a
    'news' URI.  The transformation from a formally valid 'news'
    URI back to a &lt;newsgroup-name&gt; or &lt;msg-id-core&gt;
    is not guaranteed to be syntactically valid.

</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 is 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 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 is not empty, and 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.

</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><t>
    As noted <xref target="disambiguation">above</xref>
    the presence of an <spanx style="verb">@</spanx>
    in a 'news' URI disambiguates &lt;article&gt; and &lt;newsgroups&gt;
    for URI consumers.  The new &lt;message-id&gt; construct specified
    in <xref target="RFC3977" /> does not require an
    <spanx style="verb">@</spanx>.  Since <xref target="RFC0822" />
    the <spanx style="verb">Message-ID</spanx> syntax was closely
    related to the syntax of mail addresses with an
    <spanx style="verb">@</spanx> separating left hand side (local
    part of addresses, unique part of message identifiers) and
    right hand side (domain part), and this memo sticks to the known
    <xref target="RFC1738" /> practice.

</t></section>

<section title="Acknowledgments"><t>
    Henry Spencer was the driving force to adopt MIME in Netnews,
    he registered the MIME 'message/external-body' access type
    'news&nbhy;message&nbhy;ID' discussed
    <xref target="mime">below</xref> in 1993 for
    <xref target="son-of-1036" />.
</t><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>
    Thanks to Alfred H&ouml;nes, Charles Lindsey, Clive Feather, Chris Newman,
    Ken Murchinson, Kjetil T. Homme, Lars Magne Ingebrigtsen,
    Martin D&uuml;rst, Matt Seitz, Nicolas Krebs,
    Paul Hoffman, Pasi Eronen, Roy T. Fielding, Russ Allbery, St&eacute;phane Bortzmeyer,
    and Tom Petch for their feedback, contributions, or encouragement.
</t><t>
    Bill Fenner's <spanx>xml2rfc validator</spanx> and
    <spanx>ABNF checker</spanx> were a great help in the creation
    of (not only) this memo. The same goes for various great
    <spanx>IETF&nbsp;tools</spanx> written by Henrik&nbsp;Levkowetz.
</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" /> is not expected to change the syntax of a
    <spanx style="verb">Message-ID</spanx>. The work on a successor of
    <xref target="RFC2822" /> hopefully ends up with a simplified syntax
    for both sides 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>
    If an URI does not match the generic syntax in <xref target="RFC3986" />
    it is invalid, and broken URIs can cause havoc.
    Compare <xref target="RFC5064" /> for similar security
    considerations.

</t></section>

<section title="IANA Considerations" anchor="iana"><t>
    The IANA registry of URI schemes should 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="'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;
        &rfc5234;
        &rfcNEWS;
    </references>

    <references title="Informative References">
        &rfc0822;
        <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>
        &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>
        &rfc2595;
        &rfc2822;
        &rfc2980;
        &rfc3629;
        <reference
            anchor='POSIX'
            target='http://www.unix.org/single_unix_specification/'>
        <front>
            <title>The Open Group Base Specifications Issue 6</title>
            <author>
            <organization>Institute of Electrical and Electronics Engineers</organization>
            </author>
        <date />
        </front>
        <seriesInfo name="IEEE" value="Standard 1003.1, 2004 edition" />
        </reference>
        &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;
        &rfc5064;
    </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;

    message-id      = &lt;see RFC 3977 Section 9.8&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 5234 Appendix B.1&gt;
    DIGIT           = &lt;see RFC 5234 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" anchor="gmane"><t>
        Here is an example of a mail to the
        <eref target="mailto:tools.discuss@ietf.org" />
        list with <spanx style="verb">Message-ID</spanx>
        &lt;p0624081dc30b8699bf9b@[10.20.30.108]&gt;.
    </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: &lt;p0624081dc30b8699bf9b@[10.20.30.108]&gt;
        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="RFC5064" />.
    </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 11:
    </t><t>
        <list style="symbols"><t>
            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.
        </t><t>
            Replaced the remains of the four letter word introduced in
            version 08 by a proper <xref target="POSIX" /> reference.
        </t><t>
            Added a forward pointer to <xref target="i18n" /> as explanation
            why &lt;group&nbhy;char&gt; does not exactly mirror the
            &lt;newsgroup&nbhy;name&gt; syntax.
        </t><t>
            Added a disclaimer to <xref target="news" /> that the shown
            'news' URI syntax is actually a superset of the corresponding
            &lt;newsgroup-name&gt; and &lt;msg-id-core&gt; syntax, and
            in no way intended to redefine the normative source.
        </t><t>
            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.
        </t><t>
            Thanks to Lars for tolerating <xref target="gmane" /> as
            real example.
        </t></list>
    </t><t>
        Changes in version 10:
    </t><t>
        <list style="symbols"><t>
            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
            <xref target="RFC3977" /> does not mention this point.
        </t></list>
    </t><t>
        Changes in version 09:
    </t><t>
        <list style="symbols"><t>
            Several modifications based on feedback from Tom Petch and
            St&eacute;phane Bortzmeyer.
            Updated the references to <xref target="RFC5064" /> and
            <xref target="RFC5234">STD&nbsp;68</xref>.
        </t><t>
            Obfuscated a four letter word introduced in version 08 after a
            discussion on the IETF IPR WG list.
        </t><t>
            The <xref target="i18n">note</xref> about the successor of
            <xref target="RFC2822" /> now states that hopefully
            <spanx style="strong">both</spanx> sides of the
            <spanx style="verb">Message-ID</spanx>
            syntax will be simplified.  Some details also affecting SMTP
            (Simple Mail Transfer Protocol) are still under discussion.
        </t><t>
            Clive Feather reported that <xref target="RFC3977" /> does
            not require an <spanx style="verb">@</spanx> in its new
            &lt;message-id&gt; construct.  As this is a major deviation
            from among others <xref target="RFC0822">STD&nbsp;11</xref>,
            <!-- RFC 850, RFC 1036, -->
            <xref target="RFC1738" />, <xref target="son-of-1036" />,
            <xref target="I-D.gilman-news-url" />,
            <xref target="RFC2822" />,
            <xref target="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
            <xref target="news">note</xref> corresponding to an older
            <xref target="disambiguation">note</xref> explains this
            deviation.
        </t><t>
            Various I-D nits are apparently false positives, but using
            two different spell-checkers helped.
        </t></list>
    </t><t>
        Changes in version 08:
    </t><t>
        <list style="symbols"><t>
            Many editorial and stylistic improvements proposed by
            Charles Lindsey adopted wholesale.
        </t><t>
            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.
        </t><t>
            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.
        </t><t>
            Sticked to the DDDS registration
            of 'nntp' in the style of the existing 'ftp', 'http', and 'mailto'
            DDDS records as a clerical task.
        </t><t>
            Rejected a proposal to deviate from the &lt;msg-id-core&gt; syntax
            in the normative reference <xref target="I-D.ietf-usefor-usefor" />
            reflecting a consensus of the IETF USEFOR WG formed after lengthy
            discussions.
        </t></list>
    </t><t>
        Changes in version 07:
    </t><t>
        <list style="symbols"><t>
            Fixed two bugs introduced in version 06, Kjetil T. Homme
            spotted the worst error, thanks.
            Rearranged the credits adding Henrik's IETF tools.
        </t><t>
            I-D nit about a missing reference for [I-D.hoffman-news-nntp-uri-04]
            ignored, this string will go away together with the
            <xref target="history">document history</xref>.
        </t><t>
            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.
        </t><t>
            Review request sent to register@uri.arpa, this mail didn't make it yet
            to <eref target="http://www.iana.org/list-archives/register-uri/" />.
        </t></list>
    </t><t>
        Changes in version 06:
    </t><t>
        <list style="symbols"><t>
            Reference to <xref target="RFC5064" />
            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 the DDDS BCP.
        </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 is 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 is 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>
