[RFCs/IDs] [Plain Text] [Tracker] [Diff1] [Diff2] [Nits]
Versions: 00 01 02 03 04 05 06 07 08 09 10 11
Network Working Group F. Ellermann
Internet-Draft xyzzy
Obsoletes: 1738 (if approved) February 23, 2008
Intended status: Standards Track
Expires: August 26, 2008
The 'news' and 'nntp' URI Schemes
draft-ellermann-news-nntp-uri-09
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them 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 August 26, 2008.
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.
Ellermann Expires August 26, 2008 [Page 1]
Internet-Draft 'news' and 'nntp' URIs February 2008
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Background . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. 'nntp' URIs . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. 'news' URIs . . . . . . . . . . . . . . . . . . . . . . . 4
2.3. Query parts, fragments, and normalization . . . . . . . . 5
3. Syntax of 'nntp' URIs . . . . . . . . . . . . . . . . . . . . 5
4. Syntax of 'news' URIs . . . . . . . . . . . . . . . . . . . . 6
5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 8
6. Internationalization Considerations . . . . . . . . . . . . . 8
7. Security Considerations . . . . . . . . . . . . . . . . . . . 8
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
8.1. 'snews' URIs . . . . . . . . . . . . . . . . . . . . . . . 9
8.2. nntp.uri.arpa NAPTR . . . . . . . . . . . . . . . . . . . 10
8.3. 'news-message-ID' access type . . . . . . . . . . . . . . 10
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
9.1. Normative References . . . . . . . . . . . . . . . . . . . 11
9.2. Informative References . . . . . . . . . . . . . . . . . . 11
Appendix A. Collected ABNF . . . . . . . . . . . . . . . . . . . 13
Appendix B. Detailed example . . . . . . . . . . . . . . . . . . 14
Appendix C. Document History . . . . . . . . . . . . . . . . . . 15
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 19
Intellectual Property and Copyright Statements . . . . . . . . . . 20
Ellermann Expires August 26, 2008 [Page 2]
Internet-Draft 'news' and 'nntp' URIs February 2008
1. Introduction
The first definition for many URI schemes appeared in [RFC1738].
This memo extracts the 'news' and 'nntp' URI schemes from it to allow
that material to remain on standards track if [RFC1738] is moved to
"historic" status. It belongs to a series of similar documents like
[RFC4156], [RFC4157], [RFC4248], and [RFC4266] 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
server.
[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 [RFC3977]. The Netnews Article
Format is defined in [I-D.ietf-usefor-usefor].
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 this means that
'nntp' URIs have a non-empty <authority> 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, 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
Ellermann Expires August 26, 2008 [Page 3]
Internet-Draft 'news' and 'nntp' URIs February 2008
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 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 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 "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 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 the 'news' URI scheme relies on the
"@" between local part (left hand side) and domain part (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 this was extended to varying degrees by different user
agents, an NNTP extension known as <wildmat> specified in [RFC2980]
and now part of the base NNTP specification allows pattern matching
in the style of the *NIX "find" 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 [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 preceded by a double slash "//" and terminated by the next
slash "/", question mark "?", number sign "#", or the end of the URI.
Ellermann Expires August 26, 2008 [Page 4]
Internet-Draft 'news' and 'nntp' URIs February 2008
2.3. Query parts, fragments, and normalization
This memo doesn't specify a query part introduced by a question mark
"?" 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 [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 they MUST treat a "Message-ID" without
angle brackets for 'news' URLs as is, 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> the URL corresponds roughly to
the content of an <xref> header field as specified in
[I-D.ietf-usefor-usefor], replacing its more general
<article-locator> by the <article-number> used with NNTP.
A <newsgroup-name> as specified in [I-D.ietf-usefor-usefor] consists
of 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 [RFC3986]
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> and most printable US-ASCII characters
excluding "!", "*", ",", "?", "[", "\", and "]". However,
[I-D.ietf-usefor-usefor] 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],
Ellermann Expires August 26, 2008 [Page 5]
Internet-Draft 'news' and 'nntp' URIs February 2008
since most of them have to be percent-encoded anyway (with a few
exceptions such as ":", ";", and "~"). For example:
nntp://wild.server.example/example.group.n%2Fa/12345
In the form without <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:
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 it can specify a
server, without it a configured default server for Netnews access is
used.
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" ; "{" / "|" / "}"
Ellermann Expires August 26, 2008 [Page 6]
Internet-Draft 'news' and 'nntp' URIs February 2008
The form identifying an <article> corresponds to the <msg-id-core>
construct in [I-D.ietf-usefor-usefor], 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 "\") can only occur in four 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 be percent-encoded as "%3F" in this part of an URI.
Examples, the first two are 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 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.
With 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) 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 more require
an "@". Since [RFC0822] the "Message-ID" syntax was closely related
to the syntax of mail addresses with an "@" separating left hand side
(local part of addresses, unique part of message identifiers) and
Ellermann Expires August 26, 2008 [Page 7]
Internet-Draft 'news' and 'nntp' URIs February 2008
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, he
registered the MIME 'message/external-body' access type
'news-message-ID' discussed below (Section 8.3) in 1993 for
[son-of-1036].
The Internet Drafts [I-D.gilman-news-url] by Alfred S. Gilman
published 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, Martin Duerst, Matt Seitz,
Nicolas Krebs, Paul Hoffman, 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] does not yet
allow UTF-8 in <newsgroup-name>s, therefore well-known Unicode and
UTF-8 security considerations are not listed below. For an overview
see [UTR36] and [RFC3629].
The work on E-mail Address Internationalization (EAI) started in
[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
Ellermann Expires August 26, 2008 [Page 8]
Internet-Draft 'news' and 'nntp' URIs February 2008
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
[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] the "user:password" form of a
<userinfo> is deprecated.
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 "Message-ID" is supposed to be
worldwide unique forever the NNTP protocol does not guarantee this.
Under various conditions depending on the 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 URI does not match the generic syntax in [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 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].
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"
Ellermann Expires August 26, 2008 [Page 9]
Internet-Draft 'news' and 'nntp' URIs February 2008
Encoding considerations:
Same as for 'news' (Section 6)
Applications/protocols that use this URI scheme name:
For some user 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, its
further use is deprecated in favour of ordinary
'news' URLs in conjunction with NNTP servers
supporting [RFC4642]
Security considerations:
See [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], [RFC4642], [I-D.gilman-news-url]
8.2. nntp.uri.arpa NAPTR
This section contains the [RFC3405] template for the registration of
the 'nntp' URI scheme with the Dynamic Delegation Discovery System.
Key: nntp
Authority: RFCXXXX
Record:
nntp IN NAPTR 0 0 "" "" "!^nntp://([^/?#]*@)?([^:/?#]*).*$!\\2!i" .
8.3. 'news-message-ID' access type
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
[RFC4289]: <http://www.iana.org/assignments/access-types>.
[RFC4289] requires an RFC for the access types registry. Because
[son-of-1036] was never published as 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. for annotation of
Ellermann Expires August 26, 2008 [Page 10]
Internet-Draft 'news' and 'nntp' URIs February 2008
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, 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]
Lindsey, C., "Netnews Article Format",
draft-ietf-usefor-usefor-12 (work in progress),
January 2007.
9.2. Informative References
[RFC0822] Crocker, D., "Standard for the format of ARPA Internet
text messages", STD 11, RFC 822, August 1982.
[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.
Ellermann Expires August 26, 2008 [Page 11]
Internet-Draft 'news' and 'nntp' URIs February 2008
[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>.
[son-of-1036]
Spencer, H., "News Article Format and Transmission",
June 1994, <ftp://ftp.zoo.toronto.edu/pub/news.txt.Z>.
[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.
[RFC3405] Mealling, M., "Dynamic Delegation Discovery System (DDDS)
Part Five: URI.ARPA Assignment Procedures", BCP 65,
RFC 3405, October 2002.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, November 2003.
[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,
RFC 4395, February 2006.
[UTR36] Davis, M. and M. Suignard, "Unicode Security
Ellermann Expires August 26, 2008 [Page 12]
Internet-Draft 'news' and 'nntp' URIs February 2008
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 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" ; "<" / "@" / "\\"
Ellermann Expires August 26, 2008 [Page 13]
Internet-Draft 'news' and 'nntp' URIs February 2008
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 Section 3.2.14>
mdtext = <see RFC NEWS Section 3.1.3>
mqtext = <see RFC NEWS Section 3.1.3>
msg-id-core = <see RFC NEWS Section 3.1.3>
newsgroup-name = <see RFC NEWS Section 3.1.4>
no-fold-literal = <see RFC NEWS Section 3.1.3>
no-fold-quote = <see RFC NEWS Section 3.1.3>
xref = <see RFC NEWS Section 3.2.14>
Appendix B. Detailed 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, it converts mails into Netnews articles. The header of
this article contains the following fields (among others):
Ellermann Expires August 26, 2008 [Page 14]
Internet-Draft 'news' and 'nntp' URIs February 2008
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 see [RFC5064].
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
<news://news.gmane.org/p0624081dc30b8699bf9b@%5B10.20.30.108%5D> URL.
In theory the list software could use the guessed 'news' URL in an
"Archived-At" header field, but if a list tries 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 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 derivation
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 derivation.
Ellermann Expires August 26, 2008 [Page 15]
Internet-Draft 'news' and 'nntp' URIs February 2008
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 BCP 65 [RFC3405] registration of 'nntp' in the
style of the existing 'ftp', 'http', and 'mailto' DDDS records as
a clerical task.
o Rejected a proposal to derive 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:
Ellermann Expires August 26, 2008 [Page 16]
Internet-Draft 'news' and 'nntp' URIs February 2008
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
[RFC3405].
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:
Ellermann Expires August 26, 2008 [Page 17]
Internet-Draft 'news' and 'nntp' URIs February 2008
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:
Ellermann Expires August 26, 2008 [Page 18]
Internet-Draft 'news' and 'nntp' URIs February 2008
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: hmdmhdfmhdjmzdtjmzdtzktdkztdjz@gmail.com
URI: http://purl.net/xyzzy/
Ellermann Expires August 26, 2008 [Page 19]
Internet-Draft 'news' and 'nntp' URIs February 2008
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.33pre8 (of
http://xml.resource.org/) from a source in RFC-2629 XML format.
Ellermann Expires August 26, 2008 [Page 20]
Html markup produced by rfcmarkup 1.73, available from
http://tools.ietf.org/tools/rfcmarkup/