scheme - the URL scheme, such as "http" or "inproc" (always lower
case).
userinfo - the username and password (if supplied in the URL
string).
hostname - the name of the host.
port - the port (if not specified, the default port if defined by
the scheme).
path - the path, typically used with HTTP or WebSocket.
query - the query info (typically following ? in the URL).
fragment - used for specifying an anchor, the part after # in a
URL.