The syntax of HTTP URIs is defined in RFC1738 section 3.3.
Note that the Ruby <a href="/ruby/URI">URI</a> library allows HTTP URLs containing usernames and passwords. This is not legal as per the RFC, but used to be supported in Internet Explorer 5 and 6, before the MS04-004 security update. See <URL:http://support.microsoft.com/kb/834489>.
DEFAULT_PORT = 80
COMPONENT = [ :scheme, :userinfo, :host, :port, :path, :query, :fragment