You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Dean Gaudet <dg...@arctic.org> on 1998/03/02 06:49:11 UTC

URIs again

Roy, RFC2068 3.2.1 defines absoluteURI like so: 

    absoluteURI    = scheme ":" *( uchar | reserved )

That is, it's opaque.  Nowhere else in the document does it actually
define what comes after the scheme.  It's obvious the intention is
this:

    absoluteURI    = scheme ":" relativeURI

at least as far as parsing proxy requests go.

Also interesting is the relativeURI definition:

          relativeURI    = net_path | abs_path | rel_path

          net_path       = "//" net_loc [ abs_path ]
          abs_path       = "/" rel_path
          rel_path       = [ path ] [ ";" params ] [ "?" query ]

But no meaning is given to net_loc, other than in 5.1.2 where
it defines Host: as the contents of net_loc.  Consider:

    GET //hostname/path HTTP/1.1
    Host: hostname

It's a relativeURI, and so Apache doesn't proxy it or do vhosting
on it.  Apache won't serve /path, it will essentially fail to serve
//hostname/path.  Apache will also improperly handle URIs such as
"//abc/../def".  In general right now I'm confused about URLs without
schemes.

Another tidbit... are these valid Location response headers?

    Location: http:foobar.gif
    Location: http:/foobar.gif

They seem to be given what I read in draft-fielding-url-syntax-09, but
I know that some clients choke on them (lynx in particular).  RFC2068
requires an absoluteURI response, and those fit that description since
absoluteURI is opaque.

And in a related manner, if a document's base url is
"http://abc/def/foo.html", can it refer to "https:blah.gif"?  (and expect
to get "https://abc/def/blah.gif")

Dean