Uniform Resource Locator

In computing, a Uniform Resource Locator (URL) is a type of Uniform Resource Identifier (URI) that specifies where an identified resource is available and the mechanism for retrieving it. In popular usage and in many technical documents and verbal discussions it is often, imprecisely and confusingly, used as a synonym for uniform resource identifier. The confusion in usage stems from historically different interpretations of the semantics of the terms involved. In popular language, a URL is also referred to as a Web address.

History
The URL was created in 1990 by Tim Berners-Lee as part of the URI. He regrets the format of the URL. Instead of being divided into the route to the server, separated by dots, and the file path, separated by slashes; he would have liked it to be one coherent hierarchical path. For example,  http://www.serverroute.com/path/to/file.html  would look like  http://com/serverroute/path/to/file.html .

Syntax
Every URL is made up of some combination of the following: The scheme name or resource type, a registered domain name or internet protocol address, the port number, the pathname of the file to be fetched or the program to be run, and with html files, an anchor for where the page should be displayed at.

The combined syntax will look similar to this:  resource_type://domain:port/filepathname#anchor 


 * The scheme name, or resource type, defines its namespace, purpose, and the syntax of the remaining part of the URL. Most Web-enabled programs will try to dereference a URL according to the semantics of its scheme and a context-vbn. For example, a Web browser will usually dereference the URL  http://example.org:80  by performing an HTTP request to the host  example.org , at the port number 80. Dereferencing the URL  mailto:bob@example.com  will usually start an e-mail composer with the address  bob@example.com  in the To field.
 * Other examples of scheme names include https: gopher:, wais:, ftp:. URLs that specify https as a scheme (such as  https://example.com/ ) normally denote a secure website.


 * The registered domain name or IP address gives the destination location for the URL. The domain google.com, or its IP address  72.14.207.99 </tt>, directs you to where Google's website resides.


 * The hostname and domain name portion of a URL are case insensitive since the DNS is specified to ignore case.  http://en.wikipedia.org/ </tt> and  HTTP://EN.WIKIPEDIA.ORG/ </tt> will both open same page.


 * The port number is optional. If it is not provided, the default for the scheme will be used. For example, in your browser you could type  http://google.com:80 </tt> which would bring you to google.com on port 80. If you left out port 80, your browser would navigate to the same location because port 80 is the default for HTTP.


 * The file path name is the destination on the server for where to access the file or program they are looking for. It may be treated as case insensitive by some servers, especially those that are based on Microsoft Windows. For example:
 *  http://en.wikipedia.org/wiki/URL </tt> is correct, but  http://en.wikipedia.org/WIKI/URL/ </tt> will result in an HTTP 404 error page.


 * The anchor part when used with HTTP allows you to be directed to a specific location on the page after you have navigated there. For example,  http://en.wikipedia.org/wiki/URL#Syntax </tt> would bring you to the beginning of the Syntax section of this page.

Absolute vs Relative URLs
An absolute URL is one that points to the exact location of a file. It is unique meaning that if two URLs are identical, they point to the same file. An example of this would be:  http://en.wikipedia.org/wiki/File:Raster_to_Vector_Mechanical_Example.jpg </tt>

A relative URL points to the location of a file from a point of reference. This reference is usually the directory beneath the file. It is preceded by two dots ( ../directory_path/file.txt </tt>) for the directory below, one dot ( ./directory_path/file.txt </tt>) for the current directory or without the beginning slash(  directory_path/file.txt </tt>), which is also the current directory.

URLs as locators
In its current strict technical meaning, a URL is a URI that, “in addition to identifying a resource, [provides] a means of locating the resource by describing its primary access mechanism (e.g., its network ‘location’).”

Internet hostnames
On the Internet, a hostname is a domain name assigned to a host computer. This is usually a combination of the host's local name with its parent domain's name. For example, "en.wikipedia.org" consists of a local hostname ("en") and the domain name "wikipedia.org". This kind of hostname is translated into an IP address via the local hosts file, or the Domain Name System (DNS) resolver. It is possible for a single host computer to have several hostnames; but generally the operating system of the host prefers to have one hostname that the host uses for itself.

Any domain name can also be a hostname, as long as the restrictions mentioned below are followed. So, for example, both "en.wikimedia.org" and "wikimedia.org" are hostnames because they both have IP addresses assigned to them. The domain name "pmtpa.wikimedia.org" is not a hostname since it does not have an IP address, but "rr.pmtpa.wikimedia.org" is a hostname. All hostnames are domain names, but not all domain names are hostnames.