Next: URI Encoding, Up: URI Parsing [Contents][Index]

### 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)

Next: URI Encoding, Up: URI Parsing [Contents][Index]