2.1 Parsed URI structures

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)