- From: Charles Lindsey <chl@clerew.man.ac.uk>
- Date: Thu, 17 Feb 2005 16:59:48 -0000
- To: "Frank Ellermann" <nobody@xyzzy.claranet.de>
- Message-ID: <opsmcphylf6hl8nm@clerew.man.ac.uk>
On Tue, 04 Jan 2005 21:33:27 +0100, Frank Ellermann
<nobody@xyzzy.claranet.de> wrote:
> Charles Lindsey wrote:
>
>> the 'official' "@" in the <message-id> MUST NOT be %encoded
>> (because it is a delimiter, and should be declared to
>> be reserved
>
> Yes, that makes sense, so for the news: URL scheme we have two
> reserved characters "/" and "@", and for nntp only "/", ready.
I have been reading, and re-reading, and re-re-reading RFC 3986, and I
think I have finally sussed it out. Essentially, an IRI consists of a
<scheme>, an <authority>, a <path>, a <query> and a <fragment>. What we
are doing is to provide something which satisfies the syntax for the RFC
3986 definition of a <path>. Although our scheme makes no provision for a
<query> or a <fragment>, future extensions might do so, so we should
reserve '?' and '#' just in case (anyway, the syntax of <path> requires,
as does the RE in Appendix B which should be capable of dissecting ANY URI
into its basic 5 components.
So what I have now written is:
Within a <printable-ascii> and a <newsgroup-name>, the characters
'%', '@', '/', '?' and '#' are reserved and MUST be %-encoded if they
occur. 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]).
Note that RFC 3986 also attempts to reserve '[' and ']' within a <path>,
although they never have any delimiting meaning after the <authority>, and
they are not forbidden by the RE in Appendix B. I think that is a bug in
RFC 3986, and so I have not reserved them for our case.
> The ftp draft says:
>
> | Within a name or CWD component, the characters "/" and ";"
> | are reserved and must be encoded
I suspect it should have reserved '?' and '#' too, for RFC 3986 compliance.
>
>>> | Note that user agents may extend the ability to refer to
>>> | groups by use of "*" as a string wild-card.
>
>> Then you would be allowing "wildmats" as defined in the NNTP
>> draft. That might be workable, but does anyone anywhere
>> inplement that?
>
> No idea, it's just an elegant way to keep the similar RfC 1738
> oddity somewhere without explicitly saying that it's dead.
I think we either have to deprecate it entirely, or go the whole hog and
turn it into a <wildmat>. Currently, of all the possibilities for
specifying <all-groups>, none of them works in all current servers, and
each of them fails to work in some current server, so we are damned
whatever we do. What is for sure is that _nobody_ implements <wildmat>s
currently.
So I have two alternative texts:
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. Maybe the '*' part
of the notation should be dispensed with. I therefore offer two
alternative formulations.]
[1st alternative]
all-groups = news-server [ "/" ] / <empty>
The possibility for <all-groups> to consist of a "*", which was
present in [RFC 1738] is now obsoleted, and its continued use is
deprecated. It was, in any case, only patchily implemented.
[That allows the following forms:
<URI:news:>
<URI:news://news.example.com/>
<URI:news://news.example.com>
of which the first may or may not already work on current
implementations (but that is true of the others also).]
[2nd alternative]
newsURI = "news:" ( article / group )
article = [ news-server "/" ] message-id
group = [ news-server "/" ] wildmat
[where <wildmat> is defined in draft-ietf-nntpext-base-*.txt and would
allow the following forms:
<URI:news:*>
<URI:news:comp.*>
<URI:news:*.test>
<URI:news://news.example.com/*>
<URI:news://news.example.com/comp.*>
<URI:news://news.example.com/*.test>
this is an enhancement of draft-gilman-news-url-02.txt and preserves the
"*". It would be readily implemented, but it is quite certain that
nowhere is it implemented currently. It would also be possible to
preserve the <empty> from alternative 1 as well.]
Personally, I think <wildmat>s is a step too far, and I would recommend
alternative 1. But we need to discuss this.
I have attached my complete text, as it now stands.
--
Charles H. Lindsey ---------At Home, doing my own thing------------------------
Tel: +44 161 436 6131 Fax: +44 161 436 6133 Web: http://www.cs.man.ac.uk/~chl
Email: chl@clerew.man.ac.uk Snail: 5 Clerewood Ave, CHEADLE, SK8 3JU, U.K.
PGP: 2C15F1A9 Fingerprint: 73 6D C2 51 93 A0 01 E7 65 E8 64 7E 14 A4 AB A5
Attachments
- text/plain attachment: nntp-uri.txt
Received on Friday, 18 February 2005 12:13:07 UTC