Re: Format of RTSP URLs

Roy T. Fielding (fielding@kiwi.ics.uci.edu)
Tue, 15 Jul 1997 12:18:41 -0700


To: Rob Lanphier <robla@prognet.com>
cc: www-talk@w3.org, uri@bunyip.com, confctrl@isi.edu
Subject: Re: Format of RTSP URLs 
In-reply-to: Your message of "Tue, 15 Jul 1997 11:52:44 PDT."
             <3.0.32.19970715115243.013248c8@mail.prognet.com> 
Date: Tue, 15 Jul 1997 12:18:41 -0700
From: "Roy T. Fielding" <fielding@kiwi.ics.uci.edu>
Message-ID:  <9707151229.aa13146@paris.ics.uci.edu>

>I'm not aware that there is currently a spec for server-side fragments (and
>colons beyond the port position of an URL), which is what I'm suggesting is
>a necessary feature for relative URLs to work.  I would expect that the
>rules that apply to client-side fragments ("#whatever") would also apply to
>server-side fragments.

Except that they don't.  You can't just invent a new syntax because
it is convenient to do so -- existing implementations must be taken
into account, and for all existing implementations

>     rtsp://foo/db/moviebase?movie=twister:track=audio1

has a query part of "movie=twister:track=audio1" because ":" is not
a reserved character within the query portion of a URL.  Furthermore,
the scheme-independent relative URL resolution algorithm calls for the
query component of the base URL to be stripped off BEFORE it is
used for relative resolution, since that is what current practice does.
It is therefore impossible for us to introduce such a component to the
URL syntax.

>> In any case, using query info to
>>select a resource, as opposed to redirecting to the real resource URL,
>>is poor namespace management.
>
>It may be the case that the real resource is stored in a database that must
>be accessed via query.  

Then the query should return a redirect to a new URL, or the namespace
should be structured such that it maps into a database query.  There is
no significant difference between the server-side implementations of

    rtsp://foo/db/moviebase?movie=twister:track=audio1
and
    rtsp://foo/db/moviebase/twister/track=audio1

It is merely an issue of how the server manages its namespace.
If you want to use relative forms, you must use the latter syntax.

....Roy