On Fri Mar 16, 2001, I wrote:
Btw, it's always okay to specify the protocol, even in a relative URL like this: "file:foo/bar".
Actually, I was wrong. RFC 2396 says
If the scheme component is defined, indicating that the reference starts with a scheme name, then the reference is interpreted as an absolute URI and we are done. Otherwise, the reference URI's scheme is inherited from the base URI's scheme component.
Due to a loophole in prior specifications [RFC1630], some parsers allow the scheme name to be present in a relative URI if it is the same as the base URI scheme. Unfortunately, this can conflict with the correct parsing of non-hierarchical URI. For backwards compatibility, an implementation may work around such references by removing the scheme if it matches that of the base URI and the scheme is known to always use the <hier_part> syntax. The parser can then continue with the steps below for the remainder of the reference components. Validating parsers should mark such a misformed relative reference as an error.
So "file:foo/bar" is invalid, as is even "http:/somedir/somefile". Netscape 4 and other browsers tolerate this, while Mozilla nowadays does not. I was about to file a bug report but found this:
http://bugzilla.mozilla.org/show_bug.cgi?id=22251
The "bug" gets reported quite often, as there are a number of web sites using such wrong adresses - but the Mozilla developers decided to not un-fix the browser but let the page authors fix their pages.
-- Bert
squeak-dev@lists.squeakfoundation.org