url: Parsed URIs
2.1 Parsed URI structures
=========================
Each parsed URI structure contains the following slots:
‘type’
The URI scheme (a string, e.g., ‘http’). Supported URL
Types, for a list of schemes that the ‘url’ library knows how to
process. This slot can also be ‘nil’, if the URI is not fully
specified.
‘user’
The user name (a string), or ‘nil’.
‘password’
The user password (a string), or ‘nil’. The use of this URI
component is strongly discouraged; nowadays, passwords are
transmitted by other means, not as part of a URI.
‘host’
The host name (a string), or ‘nil’. If present, this is typically
a domain name or IP address.
‘port’
The port number (an integer), or ‘nil’. Omitting this component
usually means to use the “standard” port associated with the URI
scheme.
‘filename’
The combination of the “path” and “query” components of the URI (a
string), or ‘nil’. If the query component is present, it is the
substring following the first ‘?’ character, and the path component
is the substring before the ‘?’. The meaning of these components
is scheme-dependent; they do not necessarily refer to a file on a
disk.
‘target’
The fragment component (a string), or ‘nil’. The fragment
component specifies a “secondary resource”, such as a section of a
webpage.
‘fullness’
This is ‘t’ if the URI is fully specified, i.e., the hierarchical
components of the URI (the hostname and/or username and/or
password) are preceded by ‘//’.
These slots have accessors named ‘url-PART’, where PART is the slot
name. For example, the accessor for the ‘host’ slot is the function
‘url-host’. The ‘url-port’ accessor returns the default port for the
URI scheme if the parsed URI’s PORT slot is ‘nil’.
The slots can be set using ‘setf’. For example:
(setf (url-port url) 80)