Page semi-protected
Source: Wikipedia, the free encyclopedia.

Uniform resource locator
First published1994; 30 years ago (1994)
Latest versionLiving Standard
Web Hypertext Application Technology Working Group (WHATWG)
SeriesRequest for Comments (RFC)
EditorsAnne van Kesteren
AuthorsTim Berners-Lee
Base standards
  • RFC 1738
    . – Uniform Resource Locators (URL).
  • . – Uniform Resource Identifier (URI): Generic Syntax.
  • . – The telnet URI Scheme.
  • . – The gopher URI Scheme.
  • . – The 'mailto' URI Scheme.
  • . – Moving mailserver: URI Scheme to Historic.
  • . – The 'tn3270' URI Scheme.
Related standardsURI, URN
DomainWorld Wide Web
LicenseCC BY 4.0

A uniform resource locator (URL), colloquially known as an address on the

HTTP/HTTPS) but are also used for file transfer (FTP), email (mailto), database access (JDBC
), and many other applications.

Most web browsers display the URL of a web page above the page in an address bar. A typical URL could have the form http://www.example.com/index.html, which indicates a protocol (http), a hostname (www.example.com), and a file name (index.html).


Uniform Resource Locators were defined in

birds of a feather session in 1992.[7][8]

The format combines the pre-existing system of

directory and filenames. Conventions already existed where server names could be prefixed to complete file paths, preceded by a double slash (//).[9]

Berners-Lee later expressed regret at the use of dots to separate the parts of the

URIs, wishing he had used slashes throughout,[9] and also said that, given the colon following the first component of a URI, the two slashes before the domain name were unnecessary.[10]

Early WorldWideWeb collaborators including Berners-Lee originally proposed the use of UDIs: Universal Document Identifiers. An early (1993) draft of the HTML Specification[11] referred to "Universal" Resource Locators. This was dropped some time between June 1994 (RFC 1630) and October 1994 (draft-ietf-uri-url-08.txt).[12] In his book Weaving the Web, Berners-Lee emphasizes his preference for the original inclusion of "universal" in the expansion rather than the word "uniform", to which it was later changed, and he gives a brief account of the contention that led to the change.


Every HTTP URL conforms to the syntax of a generic URI. The URI generic syntax consists of five components organized hierarchically in order of decreasing significance from left to right:[13]

URI = scheme ":" ["//" authority] path ["?" query] ["#" fragment]

A component is undefined if it has an associated delimiter and the delimiter does not appear in the URI; the scheme and path components are always defined.[14] A component is empty if it has no characters; the scheme component is always non-empty.[13]

The authority component consists of subcomponents:

authority = [userinfo "@"] host [":" port]

This is represented in a syntax diagram as:

URI syntax diagram

The URI comprises:

  • A non-empty scheme component followed by a colon (:), consisting of a sequence of characters beginning with a letter and followed by any combination of letters, digits, plus (+), period (.), or hyphen (-). Although schemes are case-insensitive, the canonical form is lowercase and documents that specify schemes must do so with lowercase letters. Examples of popular schemes include
    irc. URI schemes should be registered with the Internet Assigned Numbers Authority (IANA), although non-registered schemes are used in practice.[b]
  • An optional authority component preceded by two slashes (//), comprising:
  • A path component, consisting of a sequence of path segments separated by a slash (/). A path is always defined for a URI, though the defined path may be empty (zero length). A segment may also be empty, resulting in two consecutive slashes (//) in the path component. A path component may resemble or map exactly to a file system path but does not always imply a relation to one. If an authority component is defined, then the path component must either be empty or begin with a slash (/). If an authority component is undefined, then the path cannot begin with an empty segment—that is, with two slashes (//)—since the following characters would be interpreted as an authority component.[18]
By convention, in http and https URIs, the last part of a path is named pathinfo and it is optional. It is composed by zero or more path segments that do not refer to an existing physical resource name (e.g. a file, an internal module program or an executable program) but to a logical part (e.g. a command or a qualifier part) that has to be passed separately to the first part of the path that identifies an executable module or program managed by a web server; this is often used to select dynamic content (a document, etc.) or to tailor it as requested (see also: CGI and PATH_INFO, etc.).
URI: "http://www.example.com/questions/3456/my-document"
where: "/questions" is the first part of the path (an executable module or program) and "/3456/my-document" is the second part of the path named pathinfo, which is passed to the executable module or program named "/questions" to select the requested document.
An http or https URI containing a pathinfo part without a query part may also be referred to as a 'clean URL,' whose last part may be a 'slug.'
Query delimiter Example
Ampersand (&) key1=value1&key2=value2
Semicolon (;)[d] key1=value1;key2=value2

A web browser will usually

HTTP request to the specified host, by default on port number 80. URLs using the https scheme require that requests and responses be made over a secure connection to the website

Internationalized URL

Internet users are distributed throughout the world using a wide variety of languages and alphabets, and expect to be able to create URLs in their own local alphabets. An Internationalized Resource Identifier (IRI) is a form of URL that includes Unicode characters. All modern browsers support IRIs. The parts of the URL requiring special treatment for different alphabets are the domain name and path.[20][21]

The domain name in the IRI is known as an

Internationalized Domain Name (IDN). Web and Internet software automatically convert the domain name into punycode usable by the Domain Name System; for example, the Chinese URL http://例子.卷筒纸 becomes http://xn--fsqu00a.xn--3lr804guic/. The xn-- indicates that the character was not originally ASCII.[22]

The URL path name can also be specified by the user in the local writing system. If not already encoded, it is converted to UTF-8, and any characters not part of the basic URL character set are escaped as hexadecimal using percent-encoding; for example, the Japanese URL http://example.com/引き割り.html becomes http://example.com/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A.html. The target computer decodes the address and displays the page.[20]

Protocol-relative URLs

Protocol-relative links (PRL), also known as protocol-relative URLs (PRURL), are URLs that have no protocol specified. For example, //example.com will use the protocol of the current page, typically HTTP or HTTPS.[23][24]

See also


  1. ^ A URL implies the means to access an indicated resource and is denoted by a protocol or an access mechanism, which is not true of every URI.[5][4] Thus http://www.example.com is a URL, while www.example.com is not.[6]
  2. RFC 2717, and are now defined by RFC 7595, published in June 2015.[15]
  3. ^ For URIs relating to resources on the World Wide Web, some web browsers allow .0 portions of dot-decimal notation to be dropped or raw integer IP addresses to be used.[17]
  4. RFC 1866 (obsoleted by RFC 2854) encourages CGI authors to support ';' in addition to '&'.[19]


  1. ^ W3C (2009).
  2. ^ "Forward and Backslashes in URLs". zzz.buzz. Archived from the original on 2018-09-04. Retrieved 2018-09-19.
  3. ^ RFC 3986 (2005).
  4. ^ a b Joint W3C/IETF URI Planning Interest Group (2002).
  5. ^ RFC 2396 (1998).
  6. ^ Miessler, Daniel. "The Difference Between URLs and URIs". Archived from the original on 2017-03-17. Retrieved 2017-03-16.
  7. ^ a b W3C (1994).
  8. ^ IETF (1992).
  9. ^ a b Berners-Lee (2015).
  10. ^ BBC News (2009).
  11. Connolly, Daniel "Dan" (March 1993). Hypertext Markup Language (draft RFCxxx) (Technical report). p. 28. Archived
    from the original on 2017-10-23. Retrieved 2017-10-23.
  12. McCahill, Mark Perry (October 1994). Uniform Resource Locators (URL) (Technical report). (This Internet-Draft was published as a Proposed Standard RFC, RFC 1738 (1994)) Cited in Ang, C. S.; Martin, D. C. (January 1995). Constituent Component Interface++ (Technical report). UCSF Library and Center for Knowledge Management. Archived
    from the original on 2017-10-23. Retrieved 2017-10-23.
  13. ^ a b RFC 3986 (2005), §3.
  14. ^ RFC 3986 (2005), §5.2.1.
  15. ^ IETF (2015).
  16. ^ RFC 3986 (2005), §3.2.2.
  17. ^ Lawrence (2014).
  18. ^ RFC 2396 (1998), §3.3.
  19. ^ RFC 1866 (1995), §8.2.1.
  20. ^ a b W3C (2008).
  21. ^ W3C (2014).
  22. ^ IANA (2003).
  23. . Retrieved 2015-10-12.
  24. . Retrieved 2015-10-12.


External links

This page is based on the copyrighted Wikipedia article: URL. Articles is available under the CC BY-SA 3.0 license; additional terms may apply.Privacy Policy