[NNTP] NNTP URI draft

Russ Allbery rra at stanford.edu
Mon Mar 7 10:03:46 PST 2005


Charles Lindsey <chl at clerew.man.ac.uk> writes:

> No, there has been further discussion on the uri at w3.org list since then,
> and the current version of what I have is shown below. Pete Hoffman was
> reluctant to include that text in in his draft-hoffman-news-nntp-uri-*
> series until I had obtained some feedback from this (nntp) list and the
> udefor list.

So are you taking over as editor of this draft, or is Pete planning on
publishing a new version if you get consensus on other mailing lists?  (I
have no idea why usefor would be involved; this has nothing to do with
usefor.)

> If it is regarded as a new feature, then allowing the full wildmat would
> seem like the obvious move, since any interface to an NNTP server should
> have no difficulty in implementing it.

Hm, actually, given the wildmat syntax that we have in NNTP, this isn't
too bad since that doesn't require character classes (which lynx doesn't
support).  Okay, I think I'm agreeing with you that this wouldn't be too
bad, although that means the draft will have to wait until we publish the
base NNTP standard so that there's a definition of wildmat to refer to.

It's not at all clear to me that we want to support commas and "!",
though.  Maybe the news URL should just use wildmat-item, appropriately
escaped?

> No, the latest text has removed those complications, and is much the
> same as the current NNTP draft, except for an mandatory '@' in the
> middle.

Which can't be avoided, and I don't really want to change the NNTP draft
at this point.

> Anyway, here is my current working text.

> 2.  The News URI Scheme

>    The news URI scheme is used to refer to either news groups
>    or individual Netnews articles, as defined in [RFC 1036].

>    The news URI takes the form:

>       newsURI     = "news:" ( article / group / all-groups )
>       article     = [ news-server "/" ] message-id
>       group       = [ news-server "/" ] newsgroup-name
>       all-groups  = news-server [ "/" [ "*" ] ] / "*"
>       newsgroup-name  = 1*%d33-126

Use the definition from NNTP.  Wildmat patterns, if we add them, should be
a separate production since they act differently.

>    All other characters MAY be used freely to represent themselves. It
>    is not precluded that future extensions to the Netnews standard may
>    permit octets outside of the given ranges, in which case they too
>    MUST be %-encoded (except perhaps when used in an IRI [RFC 3987]).

Referring to UTF-8 here would be a good idea to provide some motivation as
to why this might change.

> 2.1  The newsURI contains an <article>

>    A <message-id> corresponds to the <msg-id> of [RFC 2822] and to the
>    Message-ID of section 2.1.5 of [RFC 1036], but without the enclosing
>    "<" and ">". It MUST be the message identifier of an actual Netnews
>    article

Bad use of MUST.  Referring to a non-existent article is not a violation
of the standard.  As you've worded it right now, a client would need to
ensure through some other means that the article it's asking for actually
exists before using a news URI referencing it.

I think rephrasing this sentence without using MUST at all is a better
idea.

>    The resource retrieved by this URI is the Netnews article with the
>    given <message-id>.  In a properly working Netnews system, the same
>    article will be obtained whatever server is accessed for the purpose
>    (assuming the server in question carried that article in the first
>    place and that it has not expired).

There's got to be a better way of phrasing this.

> 2.2  The newsURI contains a <group>

>    According to [RFC 1036], the <newsgroup-name> will in practice be a
>    period-delimited hierarchical name, such as "comp.lang.perl.modules".

I don't see any need to refer to 1036 here or, really, anywhere else in
this document.  Since this is a URI scheme for NNTP, it should be
sufficient to just refer to the NNTP draft, which already defines such
things as message IDs and newsgroup names.

> 2.3  The newsURI contains an <all-groups>

>    If the newsURI is of one of the following forms:
>       <URI:news:*>
>       <URI:news://news.example.com/*>
>       <URI:news://news.example.com/>
>       <URI:news://news.example.com>
>    it refers to "all available news groups".  The resource retrieved by
>    this URI is some means to gain access to all the newsgroups that are
>    available from the given <authority> (usually by invoking a suitable news
>    reading agent).

> [Issue: Do we really want all those forms? Only the first was in [RFC
> 1738], but many agents currently accept the others. Moreover, some
> agents are known to barf on anything with '*' in it.

Tough for them.  It's very clearly in the standard.  I'm comfortable with
adding the forth forms; I think the second form should only be added if
we're adding wildmat support in general, as in:

> [2nd alternative]

>       newsURI     = "news:" ( article / group )
>       article     = [ news-server "/" ] message-id
>       group       = [ news-server "/" ] wildmat

although you need to distinguish between a literal group name and a
wildmat, since the latter retrieves a different resource normally (namely
a list of possible newsgroups, rather than taking you directly to a
newsgroup).

It's not clear to me whether we should allow the trailing slash to be
optional.  What did HTTP do here?  I know that browsers support leaving it
off, but is that fixed internal to the browser, or actually allowed in the
protocol?

> It would be readily implemented, but it is quite certain that nowhere is
> it implemented currently.

Whoops.  :)

> 3.  The nntp URI scheme

>    The nntp URI scheme is used to refer to individual Netnews articles,
>    as defined in [RFC 1036].

Again, refer to NNTP not RFC 1036.  (Even more so here, since the whole
concept of an article number is purely an NNTP construction.)

> 3.2  The range encompasses more than a single <article-number>

>    The resource retrieved by this URI is some means to gain access to
>    the articles numbered within the given <range> of <article-
>    number>s in the given <newsgroup-name> from the given <authority>
>    (usually by invoking a suitable news reading agent initialized to
>    access that range). A <range> of the form "nnnn-" provides access to
>    all articles numbered "nnnn" and above.

Hm, I see that our current draft doesn't allow -nnn or -.  INN does and
has for basically forever, but RFC 2980 doesn't mention it either.  I'll
start a separate thread about that.

-- 
Russ Allbery (rra at stanford.edu)             <http://www.eyrie.org/~eagle/>



More information about the ietf-nntp mailing list