URL(Uniform Resource Locators)
Published: 2022-08-15 09:50:00

**What is a URL?**
**URL** stands for Uniform Resource Locator. A URL is nothing more than the address of a given unique resource on the Web.


> resources can be an HTML page, a CSS document, an image, etc.

**Basics: anatomy of a URL**
A URL is composed of different parts, some mandatory and others optional. The most important parts are highlighted on the URL below (details are provided in the following sections):

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4gz3lyqa37pj78dkw60c.png)

**Scheme**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/253ksjvaf0u34flucs0c.png)
The first part of the URL is the scheme, which indicates the protocol that the browser must use to request the resource (a protocol is a set method for exchanging or transferring data around a computer network). Usually for websites the protocol is HTTPS or HTTP (its unsecured version). Addressing web pages requires one of these two, but browsers also know how to handle other schemes such as mailto: (to open a mail client), so don't be surprised if you see other protocols.

**Authority**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ds4rhsboqepl4fufowyf.png)
- The domain indicates which Web server is being requested. Usually this is a domain name, but an IP address may also be used (but this is rare as it is much less convenient).

- The port indicates the technical "gate" used to access the resources on the web server. It is usually omitted if the web server uses the standard ports of the HTTP protocol (80 for HTTP and 443 for HTTPS) to grant access to its resources. Otherwise it is mandatory.

**Path to resource**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rm81ustxmzx681r7fdnq.png)
/path/to/myfile.html is the path to the resource on the Web server. In the early days of the Web, a path like this represented a physical file location on the Web server. Nowadays, it is mostly an abstraction handled by Web servers without any physical reality.

**Parameters**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0dpypughkzpy1rv1oh62.png)
?key1=value1&key2=value2 are extra parameters provided to the Web server. Those parameters are a list of key/value pairs separated with the & symbol. The Web server can use those parameters to do extra stuff before returning the resource. Each Web server has its own rules regarding parameters, and the only reliable way to know if a specific Web server is handling parameters is by asking the Web server owner.

**Anchor**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/11e14d9eg78h7o1sdxky.png)
SomewhereInTheDocument is an anchor to another part of the resource itself. An anchor represents a sort of "bookmark" inside the resource, giving the browser the directions to show the content located at that "bookmarked" spot. On an HTML document, for example, the browser will scroll to the point where the anchor is defined; on a video or audio document, the browser will try to go to the time the anchor represents. It is worth noting that the part after the #, also known as the fragment identifier, is never sent to the server with the request.

**Absolute URLs vs relative URLs**
- An absolute URL contains all the information necessary to locate a resource.

- A relative URL locates a resource using an absolute URL as a starting point. In effect, the "complete URL" of the target is specified by concatenating the absolute and relative URLs.

- An absolute URL uses the following format: scheme://server/path/resource

- A relative URL typically consists only of the path, and optionally, the resource, but no scheme or server. The following tables define the individual parts of the complete URL format.

scheme
Specifies how the resource is to be accessed.

server
Specifies the name of the computer where the resource is located.

path
Specifies the sequence of directories leading to the target. If resource is omitted, the target is the last directory in path.

resource
If included, resource is the target, and is typically the name of a file. It may be a simple file, containing a single binary stream of bytes, or a structured document, containing one or more storages and binary streams of bytes.

Video tutorial: https://youtu.be/5Jr-_Za5yQM