- From: Jeffrey Mogul <mogul@pa.dec.com>
- Date: Mon, 19 May 97 11:09:45 MDT
- 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 UTC