The 'news' and 'nntp' URI Schemes
Extracted elements (27)
Characters outside RFC 5536's group-char set in wildmat-exact newsgroup names are covered by pct-encoded to keep the syntax simple, since most such characters require percent-encoding anyway.
The memo deliberately limits the 'news' URI scheme description to essential features expected to work with 'any browser' and NNTP server, rather than specifying advanced or implementation-specific behaviors.
The new RFC 3977 message-id construct does not require '@', but this memo retains the '@'-based Message-ID syntax from RFC 1738/RFC 822 to preserve known practice and enable disambiguation from newsgroup names.
The 'news-message-ID' MIME external-body access type was registered in 1993 to allow one article to annotate another via MIME message/external-body without actual inclusion; 'news' URIs now provide a more common modern equivalent for accessing articles by Message-ID.
The 'nntp' URI is less widely supported than 'news' because Netnews articles have different local article numbers on different servers, and users may not have permission to access arbitrary servers—making server-specific article references fragile.
An agent interpreting a 'news' URI must decode all percent-encoded characters before passing the Message-ID to an NNTP server; the NNTP server receives the raw Message-ID, not the percent-encoded form.
The '%3E' encoding of '>' is not allowed in a 'news' URI article form; msg-id-core is otherwise identical to the 'id-left "@" id-right' structure of RFC 5322 mail addresses.
The 'snews' URI scheme (NNTP over SSL/TLS on port 563) is registered as historical; its further use is deprecated in favor of ordinary 'news' URLs combined with NNTP servers supporting RFC 4642 (STARTTLS).
There are no special '.' or '..' path segments in 'news' and 'nntp' URLs, and neither '.' nor '..' are valid newsgroup-name components.
User agents and NNTP servers not yet compliant with RFC 3977 do not implement all parts of the wildmat extension, so 'news' URIs using wildcard newsgroup patterns beyond a single '*' may not be universally supported.
Characters in gen-delims ('/', '?', '#', '[', ']') and '%' that appear in a msg-id-core MUST be percent-encoded when used in a 'news' URI.
URI producers MUST treat a Message-ID without angle brackets for 'news' URLs as case-sensitive, unless percent-encoding is applied as specified.
An '@' character in a 'news' URI disambiguates an article reference (Message-ID) from a newsgroup reference; this relies on the long-standing Message-ID syntax inherited from RFC 822.
An optional server authority (preceded by '//' and terminated by '/', '?', '#', or end-of-URI) may appear at the start of a 'news' URI; when absent, a user-configured default NNTP server is used.
The default TCP port for NNTP, as specified in RFC 3977, is 119; 'nntp' and 'news' URIs use this default when no explicit port is given in the authority component.
The 'news' URI newsgroups form corresponds to the RFC 3977 wildmat-pattern; '?' must be percent-encoded as '%3F', and '*' is allowed unencoded for wildcards.
The 'news' URI scheme identifies articles by their worldwide unique Message-ID (independent of server and newsgroup), or identifies newsgroups or sets of newsgroups by name, optionally with a server authority prefix.
The 'nntp' URI scheme identifies articles by their number within a specific newsgroup on a named server; it requires a non-empty authority component and has no default host.
IANA has corrected the registration of the MIME 'news-message-ID' external-body access type: it was erroneously listed as an application subtype and has been moved to the access types registry defined in RFC 4289.
The IANA URI scheme registry has been updated to point to RFC 5538 (instead of RFC 1738) as the defining document for the 'news' and 'nntp' URI schemes.
The 'snews' URI scheme is registered with IANA as a historical scheme: same syntax as 'news', uses NNTP over SSL/TLS with a default port of 563 ('nntps'). Its use is deprecated in favor of 'news' + RFC 4642.
A URI that does not match the generic RFC 3986 syntax is invalid, and broken URIs can cause havoc; implementations must validate URIs before acting on them.
Articles on NNTP servers expire over time, and the NNTP protocol does not guarantee worldwide uniqueness of Message-IDs forever. Under some conditions the same Message-ID could be reused for different articles, allowing attackers to distribute malicious content via known 'news' or 'nntp' URLs.
NNTP may transmit passwords in cleartext or offer no privacy at all; both are considered extremely unsafe in current practice. Alternatives are discussed in RFC 4642 (TLS) and RFC 4643 (authentication extension).
The 'user:password' form of the userinfo component in the authority of 'news' and 'nntp' URIs is deprecated per RFC 3986 and should not be used.
The 'news' URI has the form 'news:' [server '/'] (article / newsgroups), where article is msg-id-core (a Message-ID without angle brackets) and newsgroups is *( group-char / pct-encoded / '*' ) supporting wildmat patterns.
The 'nntp' URI has the form 'nntp:' server '/' group ['/' article-number], where server is '//' authority, group is 1*(group-char / pct-encoded), article-number is 1*16DIGIT, and group-char is ALPHA / DIGIT / '-' / '+' / '_' / '.'.