Answer:
When a document contains relative links, they are resolved by the browser, not by the HTTP server. The browser starts with the URL for the current document, removes everything after the last slash, and appends the relative URL. If the URL for the current document names a file, this works fine. But if the URL for the current document names a directory, and the URL is missing the trailing slash, then the method fails.
For example,
http://www.foo.com/bar/
names the directory bar on host
www.foo.com 
, which might contain a file called (say) index.html, which the server returns as the document. If that document contains a relative link to blah.html, the browser will use the above method to derive the URL
http://www.foo.com/bar/blah.html
But if the browser had been using
http://www.foo.com/bar 
as the base URL, the method would yield
http://www.foo.com/blah.html
which will fail because it's not what the author of the document meant.
More abstractly, every directory has two roles: It is a child of its parent directory, and it is a parent to its children. The path /bar refers to bar's role as a child, while the path /bar/ (which is equivalent to /bar/.) refers to bar's role as a parent. Both regular files and directories are children, but only directories are parents. Therefore, if you want at directory to be thought of as a directory rather than a regular file (which affects how relative paths are interpreted), you must refer to its role as a parent.