home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1630.txt < prev    next >
Text File  |  1996-05-07  |  59KB  |  962 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                     T. Berners-Lee Request for Comments: 1630                                          CERN Category: Informational                                        June 1994 
  8.  
  9.                   Universal Resource Identifiers in WWW 
  10.  
  11.                 A Unifying Syntax for the Expression of              Names and Addresses of Objects on the Network                      as used in the World-Wide Web 
  12.  
  13. Status of this Memo 
  14.  
  15.    This memo provides information for the Internet community.  This memo    does not specify an Internet standard of any kind.  Distribution of    this memo is unlimited. 
  16.  
  17. IESG Note: 
  18.  
  19.    Note that the work contained in this memo does not describe an    Internet standard.  An Internet standard for general Resource    Identifiers is under development within the IETF. 
  20.  
  21. Introduction 
  22.  
  23.    This document defines the syntax used by the World-Wide Web    initiative to encode the names and addresses of objects on the    Internet.  The web is considered to include objects accessed using an    extendable number of protocols, existing, invented for the web    itself, or to be invented in the future.  Access instructions for an    individual object under a given protocol are encoded into forms of    address string.  Other protocols allow the use of object names of    various forms.  In order to abstract the idea of a generic object,    the web needs the concepts of the universal set of objects, and of    the universal set of names or addresses of objects. 
  24.  
  25.    A Universal Resource Identifier (URI) is a member of this universal    set of names in registered name spaces and addresses referring to    registered protocols or name spaces.  A Uniform Resource Locator    (URL), defined elsewhere, is a form of URI which expresses an address    which maps onto an access algorithm using network protocols. Existing    URI schemes which correspond to the (still mutating) concept of IETF    URLs are listed here. The Uniform Resource Name (URN) debate attempts    to define a name space (and presumably resolution protocols) for    persistent object names. This area is not addressed by this document,    which is written in order to document existing practice and provide a    reference point for URL and URN discussions. 
  26.  
  27.  
  28.  
  29.  Berners-Lee                                                     [Page 1] 
  30.  RFC 1630                      URIs in WWW                      June 1994 
  31.  
  32.     The world-wide web protocols are discussed on the mailing list www-    talk-request@info.cern.ch and the newsgroup comp.infosystems.www is    preferable for beginner's questions. The mailing list uri-    request@bunyip.com has discussion related particularly to the URI    issue.  The author may be contacted as timbl@info.cern.ch. 
  33.  
  34.    This document is available in hypertext form at: 
  35.  
  36.    http://info.cern.ch/hypertext/WWW/Addressing/URL/URI_Overview.html 
  37.  
  38. The Need For a Universal Syntax 
  39.  
  40.    This section describes the concept of the URI and does not form part    of the specification. 
  41.  
  42.    Many protocols and systems for document search and retrieval are    currently in use, and many more protocols or refinements of existing    protocols are to be expected in a field whose expansion is explosive. 
  43.  
  44.    These systems are aiming to achieve global search and readership of    documents across differing computing platforms, and despite a    plethora of protocols and data formats.  As protocols evolve,    gateways can allow global access to remain possible. As data formats    evolve, format conversion programs can preserve global access.  There    is one area, however, in which it is impractical to make conversions,    and that is in the names and addresses used to identify objects.    This is because names and addresses of objects are passed on in so    many ways, from the backs of envelopes to hypertext objects, and may    have a long life. 
  45.  
  46.    A common feature of almost all the data models of past and proposed    systems is something which can be mapped onto a concept of "object"    and some kind of name, address, or identifier for that object.  One    can therefore define a set of name spaces in which these objects can    be said to exist. 
  47.  
  48.    Practical systems need to access and mix objects which are part of    different existing and proposed systems.  Therefore, the concept of    the universal set of all objects, and hence the universal set of    names and addresses, in all name spaces, becomes important.  This    allows names in different spaces to be treated in a common way, even    though names in different spaces have differing characteristics, as    do the objects to which they refer. 
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  Berners-Lee                                                     [Page 2] 
  57.  RFC 1630                      URIs in WWW                      June 1994 
  58.  
  59.     URIs 
  60.  
  61.       This document defines a way to encapsulate a name in any       registered name space, and label it with the the name space,       producing a member of the universal set.  Such an encoded and       labelled member of this set is known as a Universal Resource       Identifier, or URI. 
  62.  
  63.       The universal syntax allows access of objects available using       existing protocols, and may be extended with technology. 
  64.  
  65.       The specification of the URI syntax does not imply anything about       the properties of names and addresses in the various name spaces       which are mapped onto the set of URI strings.  The properties       follow from the specifications of the protocols and the associated       usage conventions for each scheme. 
  66.  
  67.    URLs 
  68.  
  69.       For existing Internet access protocols, it is necessary in most       cases to define the encoding of the access algorithm into       something concise enough to be termed address.  URIs which refer       to objects accessed with existing protocols are known as "Uniform       Resource Locators" (URLs) and are listed here as used in WWW, but       to be formally defined in a separate document. 
  70.  
  71.    URNs 
  72.  
  73.       There is currently a drive to define a space of more persistent       names than any URLs.  These "Uniform Resource Names" are the       subject of an IETF working group's discussions.  (See Sollins and       Masinter, Functional Specifications for URNs, circulated       informally.) 
  74.  
  75.       The URI syntax and URL forms have been in widespread use by       World-Wide Web software since 1990. 
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91. Berners-Lee                                                     [Page 3] 
  92.  RFC 1630                      URIs in WWW                      June 1994 
  93.  
  94.  Design Criteria and Choices 
  95.  
  96.    This section is not part of the specification: it is simply an    explanation of the way in which the specification was derived. 
  97.  
  98.    Design criteria 
  99.  
  100.       The syntax was designed to be: 
  101.  
  102.       Extensible              New naming schemes may be added later. 
  103.  
  104.       Complete                It is possible to encode any naming                               scheme. 
  105.  
  106.       Printable               It is possible to express any URI using                               7-bit ASCII characters so that URIs may,                               if necessary, be passed using pen and ink. 
  107.  
  108.    Choices for a universal syntax 
  109.  
  110.       For the syntax itself there is little choice except for the order       and punctuation of the elements, and the acceptable characters and       escaping rules. 
  111.  
  112.       The extensibility requirement is met by allowing an arbitrary (but       registered) string to be used as a prefix.  A prefix is chosen as       left to right parsing is more common than right to left.  The       choice of a colon as separator of the prefix from the rest of the       URI was arbitrary. 
  113.  
  114.       The decoding of the rest of the string is defined as a function of       the prefix.  New prefixed are introduced for new schemes as       necessary, in agreement with the registration authority.  The       registration of a new scheme clearly requires the definition of       the decoding of the URI into a given name space, and a definition       of the properties and, where applicable, resolution protocols, for       the name space. 
  115.  
  116.       The completeness requirement is easily met by allowing       particularly strange or plain binary names to be encoded in base       16 or 64 using the acceptable characters. 
  117.  
  118.       The printability requirement could have been met by requiring all       schemes to encode characters not part of a basic set.  This led to       many discussions of what the basic set should be.  A difficult       case, for example, is when an ISO latin 1 string appears in a URL,       and within an application with ISO Latin-1 capability, it can be       handled intact.  However, for transport in general, the non-ASCII 
  119.  
  120.  
  121.  
  122. Berners-Lee                                                     [Page 4] 
  123.  RFC 1630                      URIs in WWW                      June 1994 
  124.  
  125.        characters need to be escaped. 
  126.  
  127.       The solution to this was to specify a safe set of characters, and       a general escaping scheme which may be used for encoding "unsafe"       characters.  This "safe" set is suitable, for example, for use in       electronic mail.  This is the canonical form of a URI. 
  128.  
  129.       The choice of escape character for introducing representations of       non-allowed characters also tends to be a matter of taste.  An       ANSI standard exists in the C language, using the back-slash       character "\".  The use of this character on unix command lines,       however, can be a problem as it is interpreted by many shell       programs, and would have itself to be escaped.  It is also a       character which is not available on certain keyboards.  The equals       sign is commonly used in the encoding of names having       attribute=value pairs.  The percent sign was eventually chosen as       a suitable escape character. 
  130.  
  131.       There is a conflict between the need to be able to represent many       characters including spaces within a URI directly, and the need to       be able to use a URI in environments which have limited character       sets or in which certain characters are prone to corruption.  This       conflict has been resolved by use of an hexadecimal escaping       method which may be applied to any characters forbidden in a given       context.  When URLs are moved between contexts, the set of       characters escaped may be enlarged or reduced unambiguously. 
  132.  
  133.       The use of white space characters is risky in URIs to be printed       or sent by electronic mail, and the use of multiple white space       characters is very risky.  This is because of the frequent       introduction of extraneous white space when lines are wrapped by       systems such as mail, or sheer necessity of narrow column width,       and because of the inter-conversion of various forms of white       space which occurs during character code conversion and the       transfer of text between applications.  This is why the canonical       form for URIs has all white spaces encoded. 
  134.  
  135. Reommendations 
  136.  
  137.    This section describes the syntax for URIs as used in the WorldWide    Web initiative.  The generic syntax provides a framework for new    schemes for names to be resolved using as yet undefined protocols. 
  138.  
  139. URI syntax 
  140.  
  141.    A complete URI consists of a naming scheme specifier followed by a    string whose format is a function of the naming scheme.  For locators    of information on the Internet, a common syntax is used for the IP 
  142.  
  143.  
  144.  
  145. Berners-Lee                                                     [Page 5] 
  146.  RFC 1630                      URIs in WWW                      June 1994 
  147.  
  148.     address part. A BNF description of the URL syntax is given in an a    later section. The components are as follows.  Fragment identifiers    and relative URIs are not involved in the basic URL definition. 
  149.  
  150.    SCHEME 
  151.  
  152.       Within the URI of a object, the first element is the name of the       scheme, separated from the rest of the object by a colon. 
  153.  
  154.    PATH 
  155.  
  156.       The rest of the URI follows the colon in a format depending on the       scheme. The path is interpreted in a manner dependent on the       protocol being used.  However, when it contains slashes, these       must imply a hierarchical structure. 
  157.  
  158. Reserved characters 
  159.  
  160.    The path in the URI has a significance defined by the particular    scheme.  Typically, it is used to encode a name in a given name    space, or an algorithm for accessing an object.  In either case, the    encoding may use those characters allowed by the BNF syntax, or    hexadecimal encoding of other characters. 
  161.  
  162.    Some of the reserved characters have special uses as defined here. 
  163.  
  164.    THE PERCENT SIGN 
  165.  
  166.       The percent sign ("%", ASCII 25 hex) is used as the escape       character in the encoding scheme and is never allowed for anything       else. 
  167.  
  168.    HIERARCHICAL FORMS 
  169.  
  170.       The slash ("/", ASCII 2F hex) character is reserved for the       delimiting of substrings whose relationship is hierarchical.  This       enables partial forms of the URI.  Substrings consisting of single       or double dots ("." or "..") are similarly reserved. 
  171.  
  172.       The significance of the slash between two segments is that the       segment of the path to the left is more significant than the       segment of the path to the right.  ("Significance" in this case       refers solely to closeness to the root of the hierarchical       structure and makes no value judgement!) 
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180. Berners-Lee                                                     [Page 6] 
  181.  RFC 1630                      URIs in WWW                      June 1994 
  182.  
  183.        Note 
  184.  
  185.          The similarity to unix and other disk operating system filename          conventions should be taken as purely coincidental, and should          not be taken to indicate that URIs should be interpreted as          file names. 
  186.  
  187.    HASH FOR FRAGMENT IDENTIFIERS 
  188.  
  189.       The hash ("#", ASCII 23 hex) character is reserved as a delimiter       to separate the URI of an object from a fragment identifier . 
  190.  
  191.    QUERY STRINGS 
  192.  
  193.       The question mark ("?", ASCII 3F hex) is used to delimit the       boundary between the URI of a queryable object, and a set of words       used to express a query on that object.  When this form is used,       the combined URI stands for the object which results from the       query being applied to the original object. 
  194.  
  195.       Within the query string, the plus sign is reserved as shorthand       notation for a space.  Therefore, real plus signs must be encoded.       This method was used to make query URIs easier to pass in systems       which did not allow spaces. 
  196.  
  197.       The query string represents some operation applied to the object,       but this specification gives no common syntax or semantics for it.       In practice the syntax and sematics may depend on the scheme and       may even on the base URI. 
  198.  
  199.    OTHER RESERVED CHARACTERS 
  200.  
  201.       The astersik ("*", ASCII 2A hex) and exclamation mark ("!" , ASCII       21 hex) are reserved for use as having special signifiance within       specific schemes. 
  202.  
  203. Unsafe characters 
  204.  
  205.    In canonical form, certain characters such as spaces, control    characters, some characters whose ASCII code is used differently in    different national character variant 7 bit sets, and all 8bit    characters beyond DEL (7F hex) of the ISO Latin-1 set, shall not be    used unencoded. This is a recommendation for trouble-free    interchange, and as indicated below, the encoded set may be extended    or reduced. 
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  Berners-Lee                                                     [Page 7] 
  212.  RFC 1630                      URIs in WWW                      June 1994 
  213.  
  214.  Encoding reserved characters 
  215.  
  216.    When a system uses a local addressing scheme, it is useful to provide    a mapping from local addresses into URIs so that references to    objects within the addressing scheme may be referred to globally, and    possibly accessed through gateway servers. 
  217.  
  218.    For a new naming scheme, any mapping scheme may be defined provided    it is unambiguous, reversible, and provides valid URIs.  It is    recommended that where hierarchical aspects to the local naming    scheme exist, they be mapped onto the hierarchical URL path syntax in    order to allow the partial form to be used. 
  219.  
  220.    It is also recommended that the conventional scheme below be used in    all cases except for any scheme which encodes binary data as opposed    to text, in which case a more compact encoding such as pure    hexadecimal or base 64 might be more appropriate.  For example, the    conventional URI encoding method is used for mapping WAIS, FTP,    Prospero and Gopher addresses in the URI specification. 
  221.  
  222.    CONVENTIONAL URI ENCODING SCHEME 
  223.  
  224.       Where the local naming scheme uses ASCII characters which are not       allowed in the URI, these may be represented in the URL by a       percent sign "%" immediately followed by two hexadecimal digits       (0-9, A-F) giving the ISO Latin 1 code for that character.       Character codes other than those allowed by the syntax shall not       be used unencoded in a URI. 
  225.  
  226.    REDUCED OR INCREASED SAFE CHARACTER SETS 
  227.  
  228.       The same encoding method may be used for encoding characters whose       use, although technically allowed in a URI, would be unwise due to       problems of corruption by imperfect gateways or misrepresentation       due to the use of variant character sets, or which would simply be       awkward in a given environment.  Because a % sign always indicates       an encoded character, a URI may be made "safer" simply by encoding       any characters considered unsafe, while leaving already encoded       characters still encoded.  Similarly, in cases where a larger set       of characters is acceptable, % signs can be selectively and       reversibly expanded. 
  229.  
  230.       Before two URIs can be compared, it is therefore necessary to       bring them to the same encoding level. 
  231.  
  232.       However, the reserved characters mentioned above have a quite       different significance when encoded, and so may NEVER be encoded       and unencoded in this way. 
  233.  
  234.  
  235.  
  236. Berners-Lee                                                     [Page 8] 
  237.  RFC 1630                      URIs in WWW                      June 1994 
  238.  
  239.        The percent sign intended as such must always be encoded, as its       presence otherwise always indicates an encoding.  Sequences which       start with a percent sign but are not followed by two hexadecimal       characters are reserved for future extension.  (See Example 3.) 
  240.  
  241.    Example 1 
  242.  
  243.    The URIs 
  244.  
  245.                 http://info.cern.ch/albert/bertram/marie-claude 
  246.  
  247.    and 
  248.  
  249.                 http://info.cern.ch/albert/bertram/marie%2Dclaude 
  250.  
  251.    are identical, as the %2D encodes a hyphen character. 
  252.  
  253.    Example 2 
  254.  
  255.    The URIs 
  256.  
  257.                 http://info.cern.ch/albert/bertram/marie-claude 
  258.  
  259.    and 
  260.  
  261.                 http://info.cern.ch/albert/bertram%2Fmarie-claude 
  262.  
  263.    are NOT identical, as in the second case the encoded slash does not    have hierarchical significance. 
  264.  
  265.    Example 3 
  266.  
  267.    The URIs 
  268.  
  269.                 fxqn:/us/va/reston/cnri/ietf/24/asdf%*.fred 
  270.  
  271.    and 
  272.  
  273.                 news:12345667123%asdghfh@info.cern.ch 
  274.  
  275.    are illegal, as all % characters imply encodings, and there is no    decoding defined for "%*"  or "%as" in this recommendation. 
  276.  
  277. Partial (relative) form 
  278.  
  279.    Within a object whose URI is well defined, the URI of another object    may be given in abbreviated form, where parts of the two URIs are the    same. This allows objects within a group to refer to each other 
  280.  
  281.  
  282.  
  283. Berners-Lee                                                     [Page 9] 
  284.  RFC 1630                      URIs in WWW                      June 1994 
  285.  
  286.     without requiring the space for a complete reference, and it    incidentally allows the group of objects to be moved without changing    any references.  It must be emphasized that when a reference is    passed in anything other than a well controlled context, the full    form must always be used. 
  287.  
  288.    In the World-Wide Web applications, the context URI is that of the    document or object containing a reference. In this case partial URIs    can be generated in virtual objects or stored in real objects,    without the need for dramatic change if the higher-order parts of a    hierarchical naming system are modified.  Apart from terseness, this    gives greater robustness to practical systems, by enabling    information hiding between system components. 
  289.  
  290.    The partial form relies on a property of the URI syntax that certain    characters ("/") and certain path elements ("..", ".") have a    significance reserved for representing a hierarchical space, and must    be recognized as such by both clients and servers. 
  291.  
  292.    A partial form can be distinguished from an absolute form in that the    latter must have a colon and that colon must occur before any slash    characters. Systems not requiring partial forms should not use any    unencoded slashes in their naming schemes.  If they do, absolute URIs    will still work, but confusion may result. (See note on Gopher    below.) 
  293.  
  294.    The rules for the use of a partial name relative to the URI of the    context are: 
  295.  
  296.       If the scheme parts are different, the whole absolute URI must       be given.  Otherwise, the scheme is omitted, and: 
  297.  
  298.       If the partial URI starts with a non-zero number of consecutive       slashes, then everything from the context URI up to (but not       including) the first occurrence of exactly the same number of       consecutive slashes which has no greater number of consecutive       slashes anywhere to the right of it is taken to be the same and       so prepended to the partial URL to form the full URL. Otherwise: 
  299.  
  300.       The last part of the path of the context URI (anything following       the rightmost slash) is removed, and the given partial URI       appended in its place, and then: 
  301.  
  302.       Within the result, all occurrences of "xxx/../" or "/." are       recursively removed, where xxx, ".." and "." are complete path       elements. 
  303.  
  304.  
  305.  
  306.  
  307.  
  308. Berners-Lee                                                    [Page 10] 
  309.  RFC 1630                      URIs in WWW                      June 1994 
  310.  
  311.        Note: Trailing slashes 
  312.  
  313.    If a path of the context locator ends in slash, partial URIs are    treated differently to the URI with the same path but without a    trailing slash. The trailing slash indicates a void segment of the    path. 
  314.  
  315.       Note: Gopher 
  316.  
  317.    The gopher system does not have the concept of relative URIs, and the    gopher community currently allows / as data characters in gopher URIs    without escaping them to %2F.  Relative forms may not in general be    used for documents served by gopher servers.  If they are used, then    WWW software assumes, normally correctly, that in fact they do have    hierarchical significance despite the specifications. The use of HTTP    rather than gopher protocol is however recommended. 
  318.  
  319.    Examples 
  320.  
  321.    In the context of URI 
  322.  
  323.                         magic://a/b/c//d/e/f 
  324.  
  325.    the partial URIs would expand as follows: 
  326.  
  327.    g                       magic://a/b/c//d/e/g 
  328.  
  329.    /g                      magic://a/g 
  330.  
  331.    //g                     magic://g 
  332.  
  333.    ../g                    magic://a/b/c//d/g 
  334.  
  335.    g:h                     g:h 
  336.  
  337.    and in the context of the URI 
  338.  
  339.                            magic://a/b/c//d/e/ 
  340.  
  341.    the results would be exactly the same. 
  342.  
  343. Fragment-id 
  344.  
  345.    This represents a part of, fragment of, or a sub-function within, an    object.  Its syntax and semantics are defined by the application    responsible for the object, or the specification of the content type    of the object.  The only definition here is of the allowed characters    by which it may be represented in a URL. 
  346.  
  347.  
  348.  
  349. Berners-Lee                                                    [Page 11] 
  350.  RFC 1630                      URIs in WWW                      June 1994 
  351.  
  352.     Specific syntaxes for representing fragments in text documents by    line and character range, or in graphics by coordinates, or in    structured documents using ladders, are suitable for standardization    but not defined here. 
  353.  
  354.    The fragment-id follows the URL of the whole object from which it is    separated by a hash sign (#).  If the fragment-id is void, the hash    sign may be omitted: A void fragment-id with or without the hash sign    means that the URL refers to the whole object. 
  355.  
  356.    While this hook is allowed for identification of fragments, the    question of addressing of parts of objects, or of the grouping of    objects and relationship between continued and containing objects, is    not addressed by this document. 
  357.  
  358.    Fragment identifiers do NOT address the question of objects which are    different versions of a "living" object, nor of expressing the    relationships between different versions and the living object. 
  359.  
  360.    There is no implication that a fragment identifier refers to anything    which can be extracted as an object in its own right.  It may, for    example, refer to an indivisible point within an object. 
  361.  
  362. Specific Schemes 
  363.  
  364.    The mapping for URIs onto some existing standard and experimental    protocols is outlined in the BNF syntax definition.  Notes on    particular protocols follow.  These URIs are frequently referred to    as URLs, though the exact definition of the term URL is still under    discussion (March 1993).  The schemes covered are: 
  365.  
  366.    http                    Hypertext Transfer Protocol (examples) 
  367.  
  368.    ftp                     File Transfer protocol 
  369.  
  370.    gopher                  Gopher protocol 
  371.  
  372.    mailto                  Electronic mail address 
  373.  
  374.    news                    Usenet news 
  375.  
  376.    telnet, rlogin and tn3270                            Reference to interactive sessions 
  377.  
  378.    wais                    Wide Area Information Servers 
  379.  
  380.    file                    Local file access 
  381.  
  382.  
  383.  
  384.  Berners-Lee                                                    [Page 12] 
  385.  RFC 1630                      URIs in WWW                      June 1994 
  386.  
  387.     The following schemes are proposed as essential to the unification of    the web with electronic mail, but not currently (to the author's    knowledge) implemented: 
  388.  
  389.    mid                     Message identifiers for electronic mail 
  390.  
  391.    cid                     Content identifiers for MIME body part 
  392.  
  393.    The schemes for X.500, network management database, and Whois++ have    not been specified and may be the subject of further study.  Schemes    for Prospero, and restricted NNTP use are not currently implemented    as far as the author is aware. 
  394.  
  395.    The "urn" prefix is reserved for use in encoding a Uniform Resource    Name when that has been developed by the IETF working group. 
  396.  
  397.    New schemes may be registered at a later time. 
  398.  
  399. HTTP 
  400.  
  401.    The HTTP protocol specifies that the path is handled transparently by    those who handle URLs, except for the servers which de-reference    them.  The path is passed by the client to the server with any    request, but is not otherwise understood by the client. 
  402.  
  403.    The host details are not passed on to the client when the URL is an    HTTP URL which refers to the server in question.  In this case the    string sent starts with the slash which follows the host details.    However, when an HTTP server is being used as a gateway (or "proxy")    then the entire URI, whether HTTP or some other scheme, is passed on    the HTTP command line.  The search part, if present, is sent as part    of the HTTP command, and may in this respect be treated as part of    the path.  No fragmentid part of a WWW URI (the hash sign and    following) is sent with the request.  Spaces and control characters    in URLs must be escaped for transmission in HTTP, as must other    disallowed characters. 
  404.  
  405.    EXAMPLES 
  406.  
  407.       These examples are not part of the specification: they are       provided as illustations only.  The URI of the "welcome" page to a       server is conventionally 
  408.  
  409.          http://www.my.work.com/ 
  410.  
  411.          As the rest of the URL (after the hostname an port) is opaque          to the client, it shows great variety but the following are all          fairly typical. 
  412.  
  413.  
  414.  
  415. Berners-Lee                                                    [Page 13] 
  416.  RFC 1630                      URIs in WWW                      June 1994 
  417.  
  418.  http://www.my.uni.edu/info/matriculation/enroling.html 
  419.  
  420. http://info.my.org/AboutUs/Phonebook 
  421.  
  422. http://www.library.my.town.va.us/Catalogue/76523471236%2Fwen44--4.98 
  423.  
  424. http://www.my.org/462F4F2D4241522A314159265358979323846 
  425.  
  426.    A URL for a server on a different port to 80 looks like 
  427.  
  428.         http://info.cern.ch:8000/imaginary/test 
  429.  
  430.    A reference to a particular part of a document may, including the    fragment identifier, look like 
  431.  
  432.         http://www.myu.edu/org/admin/people#andy 
  433.  
  434.    in which case the string "#andy" is not sent to the server, but is    retained by the client and used when the whole object had been    retrieved. 
  435.  
  436.     A search on a text database might look like 
  437.  
  438.         http://info.my.org/AboutUs/Index/Phonebook?dobbins 
  439.  
  440.    and on another database 
  441.  
  442.         http://info.cern.ch/RDB/EMP?*%20where%20name%%3Ddobbins 
  443.  
  444.    In all cases the client passes the path string to the server    uninterpreted, and for the client to deduce anything from 
  445.  
  446. FTP 
  447.  
  448.    The ftp: prefix indicates that the FTP protocol is used, as defined    in STD 9, RFC 959 or any successor.  The port number, if present,    gives the port of the FTP server if not the FTP default. 
  449.  
  450.    User name and password 
  451.  
  452.       The syntax allows for the inclusion of a user name and even a       password for those systems which do not use the anonymous FTP       convention. The default, however, if no user or password is       supplied, will be to use that convention, viz. that the user name       is "anonymous" and the password the user's Internet-style mail       address. 
  453.  
  454.  
  455.  
  456.  
  457.  
  458. Berners-Lee                                                    [Page 14] 
  459.  RFC 1630                      URIs in WWW                      June 1994 
  460.  
  461.        Where possible, this mail address should correspond to a usable       mail address for the user, and preferably give a DNS host name       which resolves to the IP address of the client.  Note that servers       currently vary in their treatment of the anonymous password. 
  462.  
  463.    Path 
  464.  
  465.       The FTP protocol allows for a sequence of CWD commands (change       working directory) and a TYPE command prior to service commands       such as RETR (retrieve) or NLIST (etc.) which actually access a       file. 
  466.  
  467.       The arguments of any CWD commands are successive segment parts of       the URL delimited by slash, and the final segment is suitable as       the filename argument to the RETR command for retrieval or the       directory argument to NLIST. 
  468.  
  469.       For some file systems (Unix in particular), the "/" used to denote       the hierarchical structure of the URL corresponds to the delimiter       used to construct a file name hierarchy, and thus, the filename       will look the same as the URL path.  This does NOT mean that the       URL is a Unix filename. 
  470.  
  471.          Note: Retrieving subsequent URLs from the same host 
  472.  
  473.       There is no common hierarchical model to the FTP protocol, so if a       directory change command has been given, it is impossible in       general to deduce what sequence should be given to navigate to       another directory for a second retrieval, if the paths are       different.  The only reliable algorithm is to disconnect and       reestablish the control connection. 
  474.  
  475.    Data type 
  476.  
  477.       The data content type of a file can only, in the general FTP case,       be deduced from the name, normally the suffix of the name.  This       is not standardized. An alternative is for it to be transferred in       information outside the URL.  A suitable FTP transfer type (for       example binary "I" or text "A") must in turn be deduced from the       data content type.  It is recommended that conventions for       suffixes of public archives be established, but it is outside the       scope of this standard. 
  478.  
  479.       An FTP URL may optionally specify the FTP data transfer type by       which an object is to be retrieved. Most of the methods correspond       to the FTP "Data Types" ASCII and IMAGE for the retrieval of a       document, as specified in FTP by the TYPE command.  One method       indicates directory access. 
  480.  
  481.  
  482.  
  483. Berners-Lee                                                    [Page 15] 
  484.  RFC 1630                      URIs in WWW                      June 1994 
  485.  
  486.        The data type is specified by a suffix to the URL.  Possible       suffixes are: 
  487.  
  488.        ;type = <type-code>     Use FTP type as given to perform data                                transfer. 
  489.  
  490.        /                       Use FTP directory list commands to read                                directory 
  491.  
  492.       The type code is in the format defined in RFC 959 except that THE       SPACE IS OMITTED FROM THE URL. 
  493.  
  494.    Transfer Mode 
  495.  
  496.       Stream Mode is always used. 
  497.  
  498. Gopher 
  499.  
  500.    The gopher URL specifies the host and optionally the port to which    the client should connect. This is followed by a slash and a single    gopher type code. This type code is used by the client to determine    how to interpret the server's reply and is is not for sending to    server.  The command string to be sent to the server immediately    follows the gopher type character.  It consists of the gopher    selector string followed by any "Gopher plus" syntax, but always    omitting the trainling CR LF pair. 
  501.  
  502.    When the gopher command string contains characters (such a embedded    CR LF and HT characters) not allowed in a URL, these are encoded    using the conventional encoding. 
  503.  
  504.    Note that some gopher selector strings begin with a copy of the    gopher type character, in which case that character will occur twice    consecutively.  Also note that the gopher selector string may be an    empty string since this is how gopher clients refer to the top-level    directory on a gopher server. 
  505.  
  506.    If the encoded command string (with trailing CR LF stripped) would be    void then the gopher type character may be omiited and "1" (ASCII 31    hex) is assumed. 
  507.  
  508.    Note that slash "/" in gopher selector strings may not correspond to    a level in a hierarchical structure. 
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  Berners-Lee                                                    [Page 16] 
  517.  RFC 1630                      URIs in WWW                      June 1994 
  518.  
  519.  Mailto 
  520.  
  521.    This allows a URL to specify an RFC822 addr-spec mail address.  Note    that use of % , for example as used in forming a gatewayed mail    address, requires conversion to %25 in a URL. 
  522.  
  523. News 
  524.  
  525.    The news locators refer to either news group names or article message    identifiers which must conform to the rules for a Message-Id of RFC    1036 (Horton 1987).  A message identifier may be distinguished from a    news group name by the presence of the commercial at "@" character.    These rules imply that within an article, a reference to a news group    or to another article will be a valid URL (in the partial form). 
  526.  
  527.    A news URL may be dereferenced using NNTP (RFC 977, Kantor 1986)    (The ARTICLE by message-id command ) or using any other protocol for    the conveyance of usenet news articles, or by reference to a body of    news articles already received. 
  528.  
  529.    Note 1: 
  530.  
  531.       Among URLs the "news" URLs are anomalous in that they are       location-independent. They are unsuitable as URN candidates       because the NNTP architecture relies on the expiry of articles and       therefore a small number of articles being available at any time.       When a news: URL is quoted, the assumption is that the reader will       fetch the article or group from his or her local news host.  News       host names are NOT part of news URLs. 
  532.  
  533.    Note 2: 
  534.  
  535.       An outstanding problem is that the message identifier is       insufficient to allow the retrieval of an expired article, as no       algorithm exists for deriving an archive site and file name.  The       addition of the date and news group set to the article's URL would       allow this if a directory existed of archive sites by news group. 
  536.  
  537.       Suggested subject of study in conjunction with NNTP working group.       Further extension possible may be to allow the naming of subject       threads as addressable objects. 
  538.  
  539. Telnet, rlogin, tn3270 
  540.  
  541.    The use of URLs to represent interactive sessions is a convenient    extension to their uses for objects.  This allows access to    information systems which only provide an interactive service, and no    information server.  As information within the service cannot be 
  542.  
  543.  
  544.  
  545. Berners-Lee                                                    [Page 17] 
  546.  RFC 1630                      URIs in WWW                      June 1994 
  547.  
  548.     addressed individually or, in general, automatically retrieved, this    is a less desirable, though currently common, solution. 
  549.  
  550. URN 
  551.  
  552.    The "Universal Resource Name" is currently (March 1993) under    development in the IETF.  A requirements specification is in    preparation. It currently looks as though it will be a short string    suitable for encoding in URI syntax, for which case the "urn:" prefix    is reserved.  The URN shall be encoded precisely as defined in the    (future) URN standard, except in that: 
  553.  
  554.       If the official description of the URN syntax includes any       constant wrapper characters, then they shall not be omitted from       the URI encoding of the URN; 
  555.  
  556.       If the URN has a hierarchical nature, then the slash delimiter       shall be used in the URI encoding; 
  557.  
  558.       If the URN has a hierarchical nature, the most significant part       shall be encoded on the left in the URI encoding; 
  559.  
  560.       Any characters with reserved meanings in the URI syntax shall be       escape encoded 
  561.  
  562.    These rules of course apply to any URI scheme.  It is of course    possible that the URN syntax will be chosen such that the URI    encoding will be a 1-1 transcription. 
  563.  
  564.    An example might be a name such as 
  565.  
  566.          urn:/iana/dns/ch/cern/cn/techdoc/94/1642-3 
  567.  
  568.    but the reader should refer to the latest URN drafts or    specifications. 
  569.  
  570. WAIS 
  571.  
  572.    The current WAIS implementation public domain requires that a client    know the "type" of a object prior to retrieval. This value is    returned along with the internal object identifier in the search    response. It has been encoded into the path part of the URL in order    to make the URL sufficient for the retrieval of the object. 
  573.  
  574.    Within the WAIS world, names do not of course need to be prefixed by    "wais:" (by the partial form rules). 
  575.  
  576.  
  577.  
  578.  
  579.  
  580. Berners-Lee                                                    [Page 18] 
  581.  RFC 1630                      URIs in WWW                      June 1994 
  582.  
  583.     The wpath of a WAIS URL consists of encoded fields of the WAIS    identifier, in the same order as inthe WAIS identifier. For each    field, the identifier field number is the digits before the equals    sign, and the field contents follow, encoded in the conventional    encoding, terminated by ";". 
  584.  
  585. file 
  586.  
  587.    The other URI schemes (except nntp) share the property that they are    equally valid at any geographical place. 
  588.  
  589.    There is however a real practical requirement to be able to generate    a URL for an object in a machine's local file system. 
  590.  
  591.    The syntax is similar to the ftp syntax, but in this case the slash    is used to donate boundaries between directory levels of a    hierarchical file system is used.  The "client" software converts the    file URL into a file name in the local file name conventions.  This    allows local files to be treated just as network objects without any    necessity to use a network server for access.  This may be used for    example for defining a user's "home" document in WWW. 
  592.  
  593.    There is clearly a danger of confusion that a link made to a local    file should be followed by someone on a different system, with    unexpected and possibly harmful results.  Therefore, the convention    is that even a "file" URL is provided with a host part.  This allows    a client on another system to know that it cannot access the file    system, or perhaps to use some other local mecahnism to access the    file. 
  594.  
  595.    The special value "localhost" is used in the host field to indicate    that the filename should really be used on whatever host one is.    This for example allows links to be made to files which are    distribted on many machines, or to "your unix local password file"    subject of course to consistency across the users of the data. 
  596.  
  597.    A void host field is equivalent to "localhost". 
  598.  
  599. Message-Id 
  600.  
  601.    For systems which include information transferred using mail    protocols, there is a need to be able to make cross-references    between different items of information, even though, by the nature of    mail, those items are only available to a restricted set of people. 
  602.  
  603.    Two schemes are defined.  The first, "mid:", refers to the STD 11,    RFC 822 Message-Id of a mail message.  This Identifier is already    used in RFC 822 in for example the References and In-Reply-to field. 
  604.  
  605.  
  606.  
  607. Berners-Lee                                                    [Page 19] 
  608.  RFC 1630                      URIs in WWW                      June 1994 
  609.  
  610.     The rest of the URL after the "mid:" is the RFC822 msg-id with the    constant <> wrapper removed, leaving an identifier whose format in    fact happens to be the same as addr-spec format for mailboxes (though    the semantics are different). 
  611.  
  612.    The use of a "mid" URL implies access to a body of mail already    received. If a message has been distributed using NNTP or other    usenet protocols over the news system, then the "news:" form should    be used. 
  613.  
  614. Content-Id 
  615.  
  616.    The second scheme, "cid:", is similar to "mid:", but makes reference    to a body part of a MIME message by the value of its content-id    field.  This allows, for example, a master document being the first    part of a multipart/related MIME message to refer to component parts    which are transferred in the same message. 
  617.  
  618.    Note 
  619.  
  620.       Beware however, that content identifiers are only required to be       unique within the context of a given MIME message, and so the cid:       URL is only meaningful with the context the same MIME message. For       a reference outside the message, it would need to be appended to       the message-id of the whole message.  A syntax for this has not       been defined. 
  621.  
  622. Schemes for Further Study 
  623.  
  624.    X500 
  625.  
  626.       The mapping of x500 names onto URLs is not defined here.  A       decision is required as to whether "distinguished names" or "user       friendly names" (ufn), or both, should be allowed.  If any       punctuation conversions are needed from the adopted x500       representation (such as the use of slashes between parts of a ufn)       they must be defined.  This is a subject for study. 
  627.  
  628.    WHOIS 
  629.  
  630.       This prefix describes the access using the "whois++" scheme in the       process of definition.  The host name part is the same as for       other IP based schemes.  The path part can be either a whois       handle for a whois object, or it can be a valid whois query       string. This is a subject for further study. 
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  Berners-Lee                                                    [Page 20] 
  637.  RFC 1630                      URIs in WWW                      June 1994 
  638.  
  639.     NETWORK MANAGEMENT DATABASE 
  640.  
  641.       This is a subject for study. 
  642.  
  643.    NNTP 
  644.  
  645.       This is an alternative form of reference for news articles,       specifically to be used with NNTP servers, and particularly those       incomplete server implementations which do not allow retrieval by       message identifier.  In all other cases the "news" scheme should       be used. 
  646.  
  647.       The news server name, newsgroup name, and index number of an       article within the newsgroup on that particular server are given.       The NNTP protocol must be used. 
  648.  
  649.       Note 1. 
  650.  
  651.          This form of URL is not of global accessability, as typically          NNTP servers only allow access from local clients.   Note that          the article numbers within groups vary from server to server. 
  652.  
  653.          This form or URL should not be quoted outside this local area.          It should not be used within news articles for wider          circulation than the one server.  This is a local identifier          for a resource which is often available globally, and so is not          recommended except in the case in which incomplete NNTP          implementations on the local server force its adoption. 
  654.  
  655. Prospero 
  656.  
  657.    The Prospero (Neuman, 1991) directory service is used to resolve the    URL yielding an access method for the object (which can then itself    be represented as a URL if translated).  The host part contains a    host name or internet address.  The port part is optional. 
  658.  
  659.    The path part contains a host specific object name and an optional    version number. If present, the version number is separated from the    host specific object name by the characters "%00" (percent zero    zero), this being an escaped string terminator (null).  External    Prospero links are represented as URLs of the underlying access    method and are not represented as Prospero URLs. 
  660.  
  661. Registration of naming schemes 
  662.  
  663.    A new naming scheme may be introduced by defining a mapping onto a    conforming URL syntax, using a new prefix.  Experimental prefixes may    be used by mutual agreement between parties, and must start with the 
  664.  
  665.  
  666.  
  667. Berners-Lee                                                    [Page 21] 
  668.  RFC 1630                      URIs in WWW                      June 1994 
  669.  
  670.     characters "x-".  The scheme name "urn:" is reserved for the work in    progress on a scheme for more persistent names. 
  671.  
  672.    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. 
  673.  
  674.    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 URL, that the client software have provision for being    configured to use specific gateway locators for indirect access    through new naming schemes. 
  675.  
  676. BNF of Generic URI Syntax 
  677.  
  678.    This is a BNF-like description of the URI syntax. at the level at    which specific schemes are not considered. 
  679.  
  680.    A vertical line "|" indicates alternatives, and [brackets] indicate    optional parts.  Spaces are represented by the word "space", and the    vertical line character by "vline".  Single letters stand for single    letters.  All words of more than one letter below are entities    described somewhere in this description. 
  681.  
  682.    The "generic" production gives a higher level parsing of the same    URIs as the other productions.  The "national" and "punctuation"    characters do not appear in any productions and therefore may not    appear in URIs. 
  683.  
  684.      fragmentaddress        uri [ # fragmentid ] 
  685.  
  686.      uri                    scheme :  path [ ? search ] 
  687.  
  688.      scheme                 ialpha 
  689.  
  690.      path                   void |  xpalphas  [  / path ] 
  691.  
  692.      search                 xalphas [ + search ] 
  693.  
  694.      fragmentid             xalphas 
  695.  
  696.  
  697.  
  698. Berners-Lee                                                    [Page 22] 
  699.  RFC 1630                      URIs in WWW                      June 1994 
  700.  
  701.  
  702.  
  703.      xalpha                 alpha | digit | safe | extra | escape 
  704.  
  705.      xalphas                xalpha [ xalphas ] 
  706.  
  707.      xpalpha                xalpha | + 
  708.  
  709.      xpalphas               xpalpha [ xpalpha ] 
  710.  
  711.      ialpha                 alpha [ xalphas ] 
  712.  
  713.      alpha                  a | b | c | d | e | f | g | h | i | j | k |                             l | m | n | o  | p | q | r | s | t | u | v |                             w | x | y | z | A | B | C  | D | E | F | G |                             H | I | J | K | L | M | N | O | P |  Q | R |                             S | T | U | V | W | X | Y | Z 
  714.  
  715.      digit                  0 |1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 
  716.  
  717.      safe                   $ | - | _ | @ | . | & 
  718.  
  719.      extra                  ! | * | " |  ' | ( | ) | , 
  720.  
  721.      reserved               = | ; | / | # | ? | : | space 
  722.  
  723.      escape                 % hex hex 
  724.  
  725.      hex                    digit | a | b | c | d | e | f | A | B | C |                             D | E | F 
  726.  
  727.      national               { | } | vline | [ | ] | \ | ^ | ~ 
  728.  
  729.      punctuation            < | > 
  730.  
  731.      void 
  732.  
  733.       (end of URI BNF) 
  734.  
  735. BNF for specific URL schemes 
  736.  
  737.    This is a BNF-like description of the Uniform Resource Locator    syntax.  A vertical line "|" indicates alternatives, and [brackets]    indicate optional parts.  Spaces are represented by the word "space",    and the vertical line character by "vline".  Single letters stand for    single letters.  All words of more than one letter below are entities    described somewhere in this description. 
  738.  
  739.  
  740.  
  741.  
  742.  
  743. Berners-Lee                                                    [Page 23] 
  744.  RFC 1630                      URIs in WWW                      June 1994 
  745.  
  746.     The current IETF URI Working Group preference is for the prefixedurl    production. (Nov 1993. July 93: url). 
  747.  
  748.    The "national" and "punctuation" characters do not appear in any    productions and therefore may not appear in URLs. 
  749.  
  750.    The "afsaddress" is left in as historical note, but is not a url    production. 
  751.  
  752.   prefixedurl            u r l : url 
  753.  
  754.   url                    httpaddress | ftpaddress | newsaddress |                          nntpaddress | prosperoaddress | telnetaddress                          | gopheraddress | waisaddress |                          mailtoaddress  | midaddress | cidaddress 
  755.  
  756.   scheme                 ialpha 
  757.  
  758.   httpaddress            h t t p :   / / hostport [  / path ] [ ?                          search ] 
  759.  
  760.   ftpaddress             f t p : / / login / path [  ftptype ] 
  761.  
  762.   afsaddress             a f s : / / cellname / path 
  763.  
  764.   newsaddress            n e w s : groupart 
  765.  
  766.   nntpaddress            n n t p : group /  digits 
  767.  
  768.   midaddress             m i d  :  addr-spec 
  769.  
  770.   cidaddress             c i d : content-identifier 
  771.  
  772.   mailtoaddress          m a i l t o : xalphas @ hostname 
  773.  
  774.   waisaddress            waisindex | waisdoc 
  775.  
  776.   waisindex              w a i s : / / hostport / database [ ? search                          ] 
  777.  
  778.   waisdoc                w a i s : / / hostport / database / wtype  /                          wpath 
  779.  
  780.   wpath                  digits = path ;  [ wpath ] 
  781.  
  782.   groupart               * | group | article 
  783.  
  784.   group                  ialpha [ . group ] 
  785.  
  786.  
  787.  
  788. Berners-Lee                                                    [Page 24] 
  789.  RFC 1630                      URIs in WWW                      June 1994 
  790.  
  791.  
  792.  
  793.   article                xalphas @ host 
  794.  
  795.   database               xalphas 
  796.  
  797.   wtype                  xalphas 
  798.  
  799.   prosperoaddress        prosperolink 
  800.  
  801.   prosperolink           p r o s p e r o : / / hostport / hsoname [ %                          0 0 version [ attributes ] ] 
  802.  
  803.   hsoname                path 
  804.  
  805.   version                digits 
  806.  
  807.   attributes             attribute [ attributes ] 
  808.  
  809.   attribute              alphanums 
  810.  
  811.   telnetaddress          t e l n e t : / / login 
  812.  
  813.   gopheraddress          g o p h e r : / / hostport [/ gtype  [                          gcommand ] ] 
  814.  
  815.   login                  [ user [ : password ] @ ] hostport 
  816.  
  817.   hostport               host [ : port ] 
  818.  
  819.   host                   hostname | hostnumber 
  820.  
  821.   ftptype                A formcode | E formcode | I | L digits 
  822.  
  823.   formcode               N | T | C 
  824.  
  825.   cellname               hostname 
  826.  
  827.   hostname               ialpha [  .  hostname ] 
  828.  
  829.   hostnumber             digits . digits . digits . digits 
  830.  
  831.   port                   digits 
  832.  
  833.   gcommand               path 
  834.  
  835.   path                   void |  segment  [  / path ] 
  836.  
  837.   segment                xpalphas 
  838.  
  839.  
  840.  
  841. Berners-Lee                                                    [Page 25] 
  842.  RFC 1630                      URIs in WWW                      June 1994 
  843.  
  844.  
  845.  
  846.   search                 xalphas [ + search ] 
  847.  
  848.   user                   alphanum2 [ user ] 
  849.  
  850.   password               alphanum2 [ password ] 
  851.  
  852.   fragmentid             xalphas 
  853.  
  854.   gtype                  xalpha 
  855.  
  856.   alphanum2              alpha | digit | - | _ | . | + 
  857.  
  858.   xalpha                 alpha | digit | safe | extra | escape 
  859.  
  860.   xalphas                xalpha [ xalphas ] 
  861.  
  862.   xpalpha                xalpha | + 
  863.  
  864.   xpalphas               xpalpha [ xpalphas ] 
  865.  
  866.   ialpha                 alpha [ xalphas ] 
  867.  
  868.   alpha                  a | b | c | d | e | f | g | h | i | j | k |                          l | m | n | o  | p | q | r | s | t | u | v |                          w | x | y | z | A | B | C  | D | E | F | G |                          H | I | J | K | L | M | N | O | P |  Q | R |                          S | T | U | V | W | X | Y | Z 
  869.  
  870.   digit                  0 |1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 
  871.  
  872.   safe                   $ | - | _ | @ | . | &  | + | - 
  873.  
  874.   extra                  ! | * |  " |  ' | ( | )  | , 
  875.  
  876.   reserved               =  |  ;  |  /  |  #  | ? |  : | space 
  877.  
  878.   escape                 % hex hex 
  879.  
  880.   hex                    digit | a | b | c | d | e | f | A | B | C |                          D | E | F 
  881.  
  882.   national               { | } | vline | [ | ] | \ | ^ | ~ 
  883.  
  884.   punctuation            < | > 
  885.  
  886.   digits                 digit [ digits ] 
  887.  
  888.  
  889.  
  890.  Berners-Lee                                                    [Page 26] 
  891.  RFC 1630                      URIs in WWW                      June 1994 
  892.  
  893.    alphanum               alpha | digit 
  894.  
  895.   alphanums              alphanum [ alphanums ] 
  896.  
  897.   void 
  898.  
  899.    (end of URL BNF) 
  900.  
  901. References 
  902.  
  903.   Alberti, R., et.al., "Notes on the Internet Gopher Protocol",      University of Minnesota, December 1991,      <ftp://boombox.micro.umn.edu/pub/gopher/ gopher_protocol>. See also      <gopher://gopher.micro.umn.edu/00/Information About Gopher/About      Gopher> 
  904.  
  905.   Berners-Lee, T., "Hypertext Transfer Protocol (HTTP)", CERN, December      1991, as updated from time to time,      <ftp://info.cern.ch/pub/www/doc/http-spec.txt> 
  906.  
  907.   Crocker, D., "Standard for ARPA Internet Text Messages" STD 11, RFC      822, UDel, August 1982. 
  908.  
  909.   Davis, F, et  al., "WAIS Interface Protocol: Prototype Functional      Specification", Thinking Machines Corporation, April 23, 1990.      <ftp://quake.think.com/pub/wa is/doc/protspec.txt> 
  910.  
  911.   International Standards Organization, Information and Documentation -      Search and Retrieve Application Protocol Specification for open      Systems Interconnection, ISO-10163. 
  912.  
  913.   Horton, M., and R. Adams, "Standard for Interchange of USENET      messages", RFC 1036, AT&T Bell Laboratories, Center for Seismic      Studies, December 1987. 
  914.  
  915.   Huitema, C., "Naming: strategies and techniques", Computer Networks      and ISDN Systems 23 (1991) 107-110. 
  916.  
  917.   Kahle, B., "Document Identifiers, or International Standard Book      Numbers for the Electronic Age", <ftp:      //quake.think.com/pub/wais/doc/doc-ids.txt> 
  918.  
  919.   Kantor, B., and P. Lapsley, Kantor, B., and P. Lapsley, "Network News      Transfer Protocol", RFC 977, UC San Diego & UC Berkeley, February      1986.  <ftp://ds.internic.net/rfc/rfc977.txt> 
  920.  
  921.   Kunze, J., "Requirements for URLs", Work in Progress. 
  922.  
  923.  
  924.  
  925.  Berners-Lee                                                    [Page 27] 
  926.  RFC 1630                      URIs in WWW                      June 1994 
  927.  
  928.    Lynch, C., Coalition for Networked Information: "Workshop on ID and      Reference Structures for Networked Information", November 1991. See      <wais://quake.think.com/wais-discussion-archives?lynch> 
  929.  
  930.   Mockapetris, P., "Domain Names - Concepts and Facilities", STD 13, RFC      1034, USC/Information Sciences Institute, November 1987,      <ftp://ds.internic.net/rfc/rfc1034.txt> 
  931.  
  932.   Neuman, B. Clifford, "Prospero: A Tool for Organizing Internet      Resources", Electronic Networking: Research, Applications and      Policy, Vol 1 No 2, Meckler Westport CT USA, 1992.  See also      <ftp://prospero.isi.edu/pub/prospero/oir.ps> 
  933.  
  934.   Postel, J., and J. Reynolds, "File Transfer Protocol (FTP)", STD 9,      RFC 959, USC/Information Sciences Institute, October 1985.      <ftp://ds.internic.net/rfc/rfc959.txt> 
  935.  
  936.   Sollins, K., and L. Masinter, "Requiremnets for URNs", Work in      Progress. 
  937.  
  938.   Yeong, W., "Towards Networked Information Retrieval", Technical report      91-06-25-01, June 1991, Performance Systems International, Inc.      <ftp://uu.psi.com/wp/nir.txt> 
  939.  
  940.   Yeong, W., "Representing Public Archives in the Directory", Work in      Progress, November 1991, now expired. 
  941.  
  942. Security Considerations 
  943.  
  944.    Security issues are not discussed in this memo. 
  945.  
  946. Author's Address 
  947.  
  948.    Tim Berners-Lee    World-Wide Web project    CERN    1211 Geneva 23,    Switzerland 
  949.  
  950.    Phone: +41 (22)767 3755    Fax:   +41 (22)767 7155    EMail: timbl@info.cern.ch 
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960. Berners-Lee                                                    [Page 28] 
  961.  
  962.