[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
Updates: 1738 (if approved) October 22, 2006
Intended status: Standards Track
Expires: April 25, 2007
The news and nntp URI Schemes
draft-ellermann-news-nntp-uri-01
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 April 25, 2007.
Copyright Notice
Copyright (C) The Internet Society (2006).
Ellermann Expires April 25, 2007 [Page 1]
Internet-Draft News and nntp URIs October 2006
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.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Background . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. nntp URIs . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2. news URIs . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3. Query parts and fragments . . . . . . . . . . . . . . . . 5
3. Syntax of nntp URIs . . . . . . . . . . . . . . . . . . . . . 6
4. Syntax of news URIs . . . . . . . . . . . . . . . . . . . . . 7
5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9
6. Internationalization Considerations . . . . . . . . . . . . . 10
7. Security Considerations . . . . . . . . . . . . . . . . . . . 11
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13
9.1. Normative References . . . . . . . . . . . . . . . . . . . 13
9.2. Informative References . . . . . . . . . . . . . . . . . . 13
Appendix A. Document History . . . . . . . . . . . . . . . . . . 15
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 16
Intellectual Property and Copyright Statements . . . . . . . . . . 17
Ellermann Expires April 25, 2007 [Page 2]
Internet-Draft News and nntp URIs October 2006
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.
[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 [I-D.ietf-nntpext-base]. 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 [RFC4234].
Ellermann Expires April 25, 2007 [Page 3]
Internet-Draft News and nntp URIs October 2006
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 how they
do this, e.g. employing a separate or integrated newsreader, depend
on the implementation. The default <port> associated with NNTP in
[I-D.ietf-nntpext-base] 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
which might be available as number 10 in group "example" on server
"news.example.com" has most likely a different number on any other
server where the same article is (still) available. Users allowed to
read and post articles on one of "their" servers are typically not
allowed to access articles on an "arbitrary" other server specified
in an "nntp" URI.
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.
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 on articles by their "Message-ID", 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 "Message-IDs" from similar constructs like
other URI schemes in contexts like a plain text message body.
The "news" URI scheme also allows to identify 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 uses the "@"
Ellermann Expires April 25, 2007 [Page 4]
Internet-Draft News and nntp URIs October 2006
between local part (left hand side) and domain part (right hand side)
of "Message-IDs".
[RFC1738] offered only one wildcard for sets of newsgropus in "news"
URIs, a "*" 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 <wildmat> specified in [RFC2980] and now part
of the base NNTP specification allows pattern matching in the style
of the "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 might not (yet) implement all
parts of this new feature.
Another commonly supported addition to the [RFC1738] syntax is the
optional specification of a server at the begin 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.
2.3. Query parts and fragments
The "news" and "nntp" URI schemes don't specify a query part
introduced by a question mark "?" or a fragment introduced by a
number sign "#", but some implementations are known to use query
parts internally to address MIME parts.
Ellermann Expires April 25, 2007 [Page 5]
Internet-Draft News and nntp URIs October 2006
3. Syntax of nntp URIs
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.
nntpURL = "nntp:" server "/" group [ "/" article-number ]
server = "//" authority ; see RFC 3986
group = 1*( group-char / pct-encoded )
article-number = 1*16DIGIT
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
[I-D.ietf-nntpext-base] allows (in theory) any <UTF8-non-ascii> and
most printable US-ASCII characters excluding "!", "*", ",", "?", "[",
"\", and "]". To keep the syntax here simple all additional
characters in an NNTP <wildmat-exact> not (yet) allowed in
[I-D.ietf-usefor-usefor] are covered by <pct-encoded> as defined in
[RFC3986], although percent-encoding is not strictly necessary for
some of these additional characters like ":", ";", and "~". Most of
the additional characters have to be percent-encoded, 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
Ellermann Expires April 25, 2007 [Page 6]
Internet-Draft News and nntp URIs October 2006
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 = 1*( group-char / pct-encoded / "*" )
mid-left = 1*( mid-atext / "." / ; <dot-atom-text>
"(" / ")" / ; allowed sub-delims
"," / ";" / ; allowed sub-delims
":" / ; allowed pchar
"%22" / ; encoded DQUOTE
"%3C" / "%40" / ; encoded "<" / "@"
"%5B" / "%5D" / ; encoded "[" / "]"
"%5C%5C" / "%5C%22" ) ; encoded "\\" / '\"'
mid-atext = ALPHA / DIGIT / ; RFC 2822 <atext>
"!" / "$" / ; allowed sub-delims
"&" / "'" / ; allowed sub-delims
"*" / "+" / "=" / ; allowed sub-delims
"-" / "_" / "~" / ; allowed unreserved
"%23" / "%25" / ; encoded "#" / "%"
"%2F" / "%3F" / ; encoded "/" / "?"
"%5E" / "%60" / ; encoded "^" / "`"
"%7B" / "%7C" / ; encoded "{" / "|"
"%7D" ; encoded "}"
mid-right = 1*( mid-atext / "." / ; <dot-atom-text>
"(" / ")" / ; allowed sub-delims
"," / ";" / ; allowed sub-delims
":" / ; allowed pchar
"%22" / ; encoded DQUOTE
"%3C" / "%40" / ; encoded "<" / "@"
"%5B" / "%5D" / ; encoded "[" / "]"
"%5C%5C" / ; encoded "\\"
"%5C%5B" / "%5C%5D" ) ; encoded "\[" / "\]"
The form identifying an <article> corresponds to the <msg-id-core> in
[I-D.ietf-usefor-usefor], it's 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>.
Ellermann Expires April 25, 2007 [Page 7]
Internet-Draft News and nntp URIs October 2006
Several details of a <msg-id-core> are omitted here, the syntax
mainly shows which characters MUST be percent-encoded in a <mid-left>
(local part) or <mid-right> (domain part). Please note that "%3E" is
not allowed, and "%5C" can only occur in certain combinations.
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
<wildmat-pattern> in [I-D.ietf-nntpext-base], a newsgroup name with
wildcards "*" and "?". Any "?" has to be be percent-encoded as "%3F"
in this part of an URI. Examples:
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, 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.
With wildcards user agents could try to list matching group names on
the specified or default server. Some user agents support only a
single wildcard "*" or a specific <group> without wildcards.
Ellermann Expires April 25, 2007 [Page 8]
Internet-Draft News and nntp URIs October 2006
5. Acknowledgments
An Internet Draft 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.
Paul Hoffman started the series of Internet Drafts allowing to
replace [RFC1738]. Charles Lindsey and Russ Allbery contributed all
missing details about the "nntp" URI scheme.
Bill Fenner's _xml2rfc validator_ and _ABNF checker_ were a great
help in the creation of (not only) this memo.
Ellermann Expires April 25, 2007 [Page 9]
Internet-Draft News and nntp URIs October 2006
6. Internationalization Considerations
The URI schemes were updated to support percent-encoded UTF-8
characters in NNTP newsgroup names as specified in
[I-D.ietf-nntpext-base] and [RFC3987].
Ellermann Expires April 25, 2007 [Page 10]
Internet-Draft News and nntp URIs October 2006
7. Security Considerations
There are many security considerations for URI schemes discussed in
[RFC3986]. The NNTP protocol may use passwords in the clear for
authentication, 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
[I-D.ietf-nntpext-authinfo].
Ellermann Expires April 25, 2007 [Page 11]
Internet-Draft News and nntp URIs October 2006
8. IANA Considerations
The IANA registry of URI schemes could be updated to point to this
memo instead of [RFC1738] for the "news" and "nntp" URI schemes.
Ellermann Expires April 25, 2007 [Page 12]
Internet-Draft News and nntp URIs October 2006
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.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, January 2005.
[RFC4234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", RFC 4234, October 2005.
[I-D.ietf-nntpext-base]
Feather, C., "Network News Transfer Protocol",
draft-ietf-nntpext-base-27 (work in progress), June 2005.
[I-D.ietf-usefor-usefor]
Lindsey, C., "Netnews Article Format",
draft-ietf-usefor-usefor-10 (work in progress),
September 2006.
9.2. Informative References
[RFC1738] Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform
Resource Locators (URL)", RFC 1738, December 1994.
[RFC2822] Resnick, P., "Internet Message Format", RFC 2822,
April 2001.
[RFC2980] Barber, S., "Common NNTP Extensions", RFC 2980,
October 2000.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, November 2003.
[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.
Ellermann Expires April 25, 2007 [Page 13]
Internet-Draft News and nntp URIs October 2006
[RFC4266] Hoffman, P., "The gopher URI Scheme", RFC 4266,
November 2005.
[I-D.ietf-nntpext-authinfo]
Vinocur, J., "NNTP Extension for Authentication",
draft-ietf-nntpext-authinfo-10 (work in progress),
August 2005.
Ellermann Expires April 25, 2007 [Page 14]
Internet-Draft News and nntp URIs October 2006
Appendix A. Document History
Note: This informative appendix should be removed during the final
publication of the document.
Changes in version 01:
o References of RFC 977 and RFC 2980 replaced by the now approved
RFC977bis [I-D.ietf-nntpext-base]
o Security considerations updated with a reference to the now
approved [I-D.ietf-nntpext-authinfo].
o References of RFC 1036 and [RFC2822] replaced by the last called
[I-D.ietf-usefor-usefor].
o References of RFC 2396 removed, the jumps from [RFC1738] to
[RFC3986] and from RFC 1036 to [I-D.ietf-usefor-usefor] are
interesting enough without talking about intermediate steps.
o [RFC1738] has no <range> for the "nntp" URI scheme, and this memo
isn't the place to invent new tricks for a rarely used scheme.
Changes in version 00:
o Derived from [I-D.hoffman-news-nntp-uri-04] after discussions on
the URI list. At this time what's now known as the Netnews
Article Formt [I-D.ietf-usefor-usefor] was still far from ready,
and RFC977bis [I-D.ietf-nntpext-base] also not finished.
Ellermann Expires April 25, 2007 [Page 15]
Internet-Draft News and nntp URIs October 2006
Author's Address
Frank Ellermann
xyzzy
Hamburg, Germany
Email: nobody@xyzzy.claranet.de
URI: http://purl.net/xyzzy/
Ellermann Expires April 25, 2007 [Page 16]
Internet-Draft News and nntp URIs October 2006
Full Copyright Statement
Copyright (C) The Internet Society (2006).
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 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.
Acknowledgments
Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA). This document was produced
using xml2rfc v1.32pre1 (of http://xml.resource.org/) from a source
in RFC-2629 XML format.
Ellermann Expires April 25, 2007 [Page 17]
Html markup produced by rfcmarkup 1.73, available from
http://tools.ietf.org/tools/rfcmarkup/