Re: URI path starting with "//"

Quickly tested the URI <http://www.mnot.net//index.html> on Safari, Chrome and Firefox (all OSX); all of them emitted the bits on the wire as anticipated (i.e.., GET //index.html). Squid didn't rewrite it, Apache happily served it, internally rewriting to /index.html (which is its choice).

Is this confusing for folks who are authoring links? Absolutely, considering that these will point to different resources:

http://example.com//foo
//foo <-- assuming base URI is http://example.com/

That said, we appear to have interop, so I think we need to change it back, so as to allow it.

Cheers,


On 02/02/2013, at 5:37 AM, Zhong Yu <zhong.j.yu@gmail.com> wrote:

> If user clicks a URL http://example.com//abc, the browser should send
> 
>    GET //abc HTTP/1.1
>    Host: example.com
> 
> However the latest bis draft seems to forbid "origin-form" to start with "//"
> 
> http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-21#section-5.3
> 
>    origin-form    = path-absolute [ "?" query ]
> 
> http://tools.ietf.org/html/rfc3986#section-3.3
> 
>    path-absolute   ; begins with "/" but not "//"
> 
> I couldn't find anything in RFC 3986 that accurately describe the path
> part that we really want, which should be
> 
>    path-xxx = "/" *( "/" / pchar )
> 
> HTTP probably need to define this term. It'll also help people to
> finally refer to this thingy with a proper name.
> 
> Zhong Yu
> 

--
Mark Nottingham   http://www.mnot.net/

Received on Tuesday, 5 February 2013 01:08:14 UTC