Re: comments on draft-ietf-http-ext-mandatory-00.txt
From: Dave Kristol (dmk@bell-labs.com)
Date: Wed, Apr 08 1998
Message-ID: <352B8615.6088@bell-labs.com>
Date: Wed, 08 Apr 1998 10:13:41 -0400
From: Dave Kristol <dmk@bell-labs.com>
To: Henrik Frystyk Nielsen <frystyk@w3.org>
CC: ietf-http-ext@w3.org
Subject: Re: comments on draft-ietf-http-ext-mandatory-00.txt
Henrik Frystyk Nielsen wrote:
>
> At 16:37 3/24/98 -0500, Dave Kristol wrote:
> [...]
> >3. Extension Declarations
> > prefix = 2*DIGIT "-"
> > The "-" is, of course, superfluous. It simplifies coding
> > marginally. Is that why it's there?
>
> The purpose of the "-" is to avoid the potential corner problem of the
> header field name space being filled up. Any other non-nummeric character
> would do.
I don't think you understood my point, and I confess I don't understand
yours.
What I'm saying is this: the syntactic definition could just as well be
prefix=2*DIGIT, with the understanding that a '-' gets used between
<prefix> and the header. So I could have
M-PUT /a-resource HTTP/1.1
Man: "stuff"; ns=43
43-copyright: more-stuff
...
> [...]
> > "-". The format of the prefix using a combination of digits and the
> > dash "-" guarantees that no extension declaration can reserve the
> > whole header field name space.
> >
> > I guess I don't follow the logic here. Or maybe it's that I
> > don't understand how, with a different approach, some
> > extension could have reserved the whole header name space.
>
> Without the dash you could have a set of prefixes like this
>
> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
>
> and you would have reserved the whole prefix space.
Given what I said above, I don't think it's the '-' that prevents
reserving the whole extension space. Rather it's the 2*DIGIT part. You
would have to reserve 00, 01, 02, ..., 99 to hog the space. (Maybe I
should have listed this point under "nits". :-)
>
> > extension identifier is maintained and kept unquestioned throughout
> > the lifetime of the extension. Care should be taken not to distribute
> > =========================
> >
> > Seems to me there's no way to gauge the lifetime. The
> > originator may have one idea, but there may well be
> > software in the field with a lifetime far in excess of
> > the intended lifetime of the extension. In other
> > words, unless there's an expiration built into the
> > extension, the extension identifier has to be unique
> > forever, I think.
>
> I think there are two points here:
>
> 1) do we need to indicate when and if an extension is no longer and if so,
> does it have to be part of the extension framework.
> 2) What is a reasonable estimate of a lifetime.
>
> Wrt 1) the idea is that if an extension is no longer then it would not be
> available and return 410 (Gone) if trying to resolve it. On the other hand
> the extension may at that time be ubiquitous and doesn't have to be
> resolved as everybody knows what it is. I don't think we have to deal with
> this here.
I don't think 410 (Gone) is an appropriate status code in this context.
510 (Not extended) seems more appropriate.
>
> For 2) I would suggest that we use Harald's notion of reasonable amount of
> time as 50 years.
>
> Do you agree?
I think there are two sub-problems, for a given pair of client/server
hosts.
a) How long should a program that knows it previously used an extension
assume it can continue to use the extension?
b) How long should a program that knows it could *not* previously use an
extension wait before it tries to use the extension again?
Maybe 50 years is the right answer for (a) (though I doubt it), but 50
years is almost certainly the wrong answer for (b).
Dave Kristol