RE: Question regarding RFC 3986, Section 3.2

On Fri May 27 2005 15:39, Robert Buck wrote:
> 
> You indicated that "scheme://" was legal syntax.
> 
> Using the regular expression cited in the text of the spec on this uri
> produces:
> 
>    {scheme,undefined,undefined,undefined,undefined}
> 
> which when you run through the recomposition algorithm cited results in:
> 
>  scheme:
> 
> which is somewhat different from the input. Then is "scheme:" and
> "scheme://" equivalent?

The short answer is "maybe".  The long answer:

Technically, the "//" delimits "authority path-abempty" and differentiates
that "hier-part" from other types of path-* components.  In this particular
case as both authority and path-abempty are null, there isn't anything to
delimit.  In "scheme:", there is no hier-part, there is path-empty.  The
former has a mandatory "host" in authority, which happens to be empty
(normally it would be a domain name.

Semantically (which is what your question boils down to), there is a
difference between a host with an empty name and an empty path with no
host, inasmuch as the former specifies a host and the latter does not.

John Cowan reported that Mozilla treats the two differently; Konqueror
treats them as the same (it rewrites "about://" to "about:").  So at
best it's a gray area where there exist implementation differences.

Received on Friday, 27 May 2005 22:07:57 UTC