Re: how should remote path names be handled?

Guido.van.Rossum@cwi.nl
Fri, 23 Apr 1993 00:11:55 +0200


Tim BL writes:
>This is always what you expect, except that it might
>surprise you if you don't think too hard that in directory
>/a/fred, "bert" refers to /a/bert, not /a/fred/bert, so
>/a/fred/bert should be referred to as "fred/bert" or "./bert".
>Anyway, you are right, and if there are browsers which do otherwise
>that is their problem, unless I've goofed.

The last example is really worrysome! If you are trying to follow
UNIX conventions, "./bert" should refer to the same thing as "bert",
so it would refer to "/a/bert"! What does the library code actually
do? (I don't have it handy!)

Another question about this subject is resolution of "../" prefixes.
In the above example, what does "../foo" refer to? I'd hope "/foo".

Also, who is supposed to do the ".." resolution -- the client or the
server?

And what about "/../" in the middle of a path? Does
"/foo/bar/../bletch" always mean "/foo/bletch" (if "/foo/bar" were a
symbolic link to a directory, it won't on UNIX, meaning that a client
doing "../" stripping might wind up at a different place than a server
blindly following the path (which might be dangerous if there are more
"../" parts than allowed -- I don't know if servers allow this).

Finally, I believe there are (or were) some gateway servers on the net
that are confused about this themselves: when in /a/b and attempting
to generate a relative reference to c, they would end up referring to
/a/b/c instead of /a/c, or when attempting to refer one level up they
would point to /a/a instead of /a. (I seem to remember the CERN Emacs
Info gateway did this -- can't find where it is right now...)

--Guido van Rossum, CWI, Amsterdam <Guido.van.Rossum@cwi.nl>