W3C home > Mailing lists > Public > ietf-http-wg-old@w3.org > May to August 1997

Re: Rewrite of feature tag syntax rules

From: Jeffrey Mogul <mogul@pa.dec.com>
Date: Mon, 19 May 97 11:09:45 MDT
Message-Id: <9705191809.AA08599@acetes.pa.dec.com>
To: http-wg@cuckoo.hpl.hp.com
I'm hesitant to get into the debate over this, and this is my
absolute last message on the topic.

Basically, I agree with Larry, but I think there's a more
succinct description of the philosophy here.

Roger Needham once said something like "90% of computer science
is naming", and from a pseudo-formal point of view, a name is
just a level of indirection.  I.e., we tend to think of a DNS
name as the "name" of an IP "address", but in fact, the IP address
is also the "name" of a particular Ethernet address (for example),
which in turn is really just the "name" of a lump of hardware sitting
on someone's Ethernet.

The solution to the feature-tag problem (clean wire-layer 
implementation, internationalized user interface) is also
just a level of indirection.

As Larry says, at the bottom of the hierarchy we want
an enumerated type (essentially opaque) for specifying a feature
tag "on the wire".  We could just as easily use small integers
for these, but using ASCII tags might have some benefit in
debugging things.  In fact, if we made a rule that ALL new HTTP
header-names and tags were to be composed of randomly chosen
(but unique) small integers, we would avoid a lot of useless debate.
HTTP is for computers to talk to each other, not for humans.

Koen and others want human users to be able to specify feature
tags.  Fine; just introduce a map between a set of human-sensible,
internationalized names, and the enumerated set of feature tags.
This map could be implementation specific, or it could be
standardized *independent of HTTP*, to make service-authoring
tools more portable.  But the purpose of this map is to cleanly
separate what computers do and what humans do.

We probably should have used a similar two-level abstraction for
internationalizing URLs (i.e., define a mandatory canonical
representation for representing URLs on the wire within HTTP headers,
then define a unique mapping between that representation and
human-readable URLs), but it's too late for that, and we're stuck with
a world in which humans sometimes type "%7E" instead of "~".  We don't
need to make the same error again.

-Jeff
Received on Monday, 19 May 1997 11:23:32 EDT

This archive was generated by hypermail pre-2.1.9 : Wednesday, 24 September 2003 06:32:42 EDT