Each parsed URI structure contains the following slots:
type
The URI scheme (a string, e.g., http
). See 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)