next up previous contents
Next: Uniform Resource Locator Up: The World Wide Web Previous: HTML and SGML

Uniform Resource Locators: URLs

The topic of location is a thorny bush of concepts: To find a resource in the WWW we need a handle of some kind.

So a URL tells us where a resource is located. The WWW clients can use to this to reach the correct web server, and the correct page in that server simply by passing the relevant parts of the URL to the relevant processes and protocols, which then use their routing tables to reach the right place. The authors of URLs call them a Unifying Syntax for the Expression of Names and addresses of Objects on the Network.

Links in Web pages have largely been URLs so far. Ideally, they would be "pure" names, since then we could have replication of WWW entries across multiple servers (or mobile information) without having to change the references.

In fact, a URL is slightly lower level still, and the generic name gif is a Uniform Resource Identifier, which sits half way between the idea of a name, and the idea of a locator. An identifier is a unique handle, but doesn't tell you "what a thing is" or "where it is".

A name allows a user, with the help of a "client" program, to retrieve or operate on objects via a "server" program. A name may be passed for example:

     File Transfer Protocol (Postel 1985):
      Host name or IP-address
      [TCP port]
      [user name, password]
   W.A.I.S. (Kahle 1990)
      Host name or IP-address
      [TCP port]
      local document id
    Gopher (Alberti 1991)
      Host name or IP-address
      [TCP port]
      database name
      selector string
    HTTP (Berners-Lee 1991)
    Host name or IP-address
    [TCP port]
    local object id
    NNTP (Kantor 1986) group Group name
      NNTP article
      Host name
      unique message identifier
    Prospero links (Neuman 1992)
   Host name or IP address
      [UDP port]
       Host specific object name
    x.500 distinguished name

      Organisational unit
      Local object identifier


A new naming scheme may be introduced by defining a mapping onto a conforming URL syntax, using a new scheme identifier. Experimental scheme identifiers may be used by mutual agreement between parties, and must start with the characters "x-". The scheme name "urn:" is reserved for the work in progress on a scheme for more persistent names. Therefore URNs (Names) and URLs (Locators) be

distinguishable. An object which is either a URL or a URN is known as a URI (Identifier).

It is proposed that the Internet Assigned Numbers Authority (IANA) perform the function of registration of new schemes. Any submission of a new URI scheme must include a definition of an algorithm for the retrieval of any object within that scheme. The algorithm must take the URI and produce either a set of URL(s) which will lead to the desired object, or the object itself, in a well-defined or determinable format.

It is recommended that those proposing a new scheme demonstrate its utility and operability by the provision of a gateway which will provide images of objects in the new scheme for clients using an existing protocol. If the new scheme is not a locator scheme, then the properties of names in the new space should be clearly defined. It is likewise recommended that, where a protocol allows for retrieval by URI, that the client software have provision for being configured to use specific gateway locators for indirect access through new naming schemes.

next up previous contents
Next: Uniform Resource Locator Up: The World Wide Web Previous: HTML and SGML

Jon Crowcroft
Wed May 10 11:46:29 BST 1995