# 8.18. URL Functions

## Extraction Functions

The URL extraction functions extract components from HTTP URLs (or any valid URIs conforming to RFC 2396). The following syntax is supported:

[protocol:][//host[:port]][path][?query][#fragment]


The extracted components do not contain URI syntax separators such as : or ?.

url_extract_fragment(url) → varchar

Returns the fragment identifier from url.

url_extract_host(url) → varchar

Returns the host from url.

url_extract_parameter(url, name) → varchar

Returns the value of the first query string parameter named name from url. Parameter extraction is handled in the typical manner as specified by RFC 1866#section-8.2.1.

url_extract_path(url) → varchar

Returns the path from url.

url_extract_port(url) → bigint

Returns the port number from url.

url_extract_protocol(url) → varchar

Returns the protocol from url.

url_extract_query(url) → varchar

Returns the query string from url.

## Encoding Functions

url_encode(value) → varchar

Escapes value by encoding it so that it can be safely included in URL query parameter names and values:

• Alphanumeric characters are not encoded.
• The characters ., -, * and _ are not encoded.
• The ASCII space character is encoded as +.
• All other characters are converted to UTF-8 and the bytes are encoded as the string %XX where XX is the uppercase hexadecimal value of the UTF-8 byte.
url_decode(value) → varchar

Unescapes the URL encoded value. This function is the inverse of url_encode().