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)