Roy T. Fielding fielding@ebuilt.com
Thu, 14 Jun 2001 17:55:10 -0700

> in most of the recent cases that i have seen, the only thing that differs is
> how the data gets moved, e.g., going from soap/http to soap/beep, or
> ice/http to ice/beep, etc. in both cases, you have a situation where the
> path is going to be the same, and i have difficulty understanding whether
> the "use beep" bit should be present in the scheme component or the
> authority component. for example,
>     http://example.com/
> may very well be a valid thing for someone doing soap over http. so, what
> should we be using for the soap over beep case? here are four possibilities,
> i'm sure there are more...
>     beep://example.com/
>     soap.beep://example.com/
>     soap://example.com/?proto=beep
>     beep://example.com?profile=http://iana.org/beep/soap

Too many bits, and the ? really should be reserved for supplying information
to resources rather than general identification..

> ideally, i would prefer to avoid having to use a new scheme everytime
> someone moves yet another service on top of beep.

Hmmm, why?  Logically, they are distinct services.  Keep in mind that the
"http" URL is specific to HTTP over TCP, even though HTTP itself is not
dependent on TCP.  If we were to deploy a new HTTP-over-SCTP service,
we would need a new URL scheme because the authority syntax of hostname:port
is specific to TCP, not HTTP.

If I were to invent it from scratch, I would probably choose something like


with the first ":http.tcp.80" being the default for the web. Obviously,
that is getting pretty ugly.  For some reason I think this looks better


It also better fits the architecture of most URI handling software, which
typically consists of a table of (scheme name , handler routine) tuples.