A URL is a [[Hypertext Transfer Protocol|HTTP]] address that is composed of the following:
```
scheme://username:
[email protected]:port/path?query#fragment
```
- Scheme
- `://`
- Optional username and password
- Optional port (not required if using the standard port for that scheme)
- Hostname ([[Domain Name Server|DNS]] or [[../IPv4 Address|IPv4]] or [[IPv6]])
- Path (ex. `/index.html`, `/api/v1/users`)
- Query string (optional) for additional parameters that are key-value pairs delimited by `&`. Special characters MUST be "URL-Encoded", which is difficult to get right.
- Fragment - refers to a section in a resource (simple example is a specific heading in a [[Hypertext Markup Language|HTML]] document)