Reference RFC 3986, which supercedes RFC 2396.

RFC 3986 smems to better address the relative vs. absolute path issue, while
RFC 2396 is better for allowing a user part without a host in the authorityh
part.