Yes, it can most definitely break things.
The spec considers http://host/pages/foo.html
and http://host/pages//foo.html
to be different URIs, and servers are free to assign different meanings to them. However, most servers will treat paths /pages/foo.html
and /pages//foo.html
identically (because the underlying file system does too). But even when dealing with such servers, it's easily possible for extra slash to break things. Consider the situation where a relative URI is returned by the server.
http://host/pages/foo.html + ../images/foo.png = http://host/images/foo.png
http://host/pages//foo.html + ../images/foo.png = http://host/pages/images/foo.png
Let me explain what that means. Say your server returns an HTML document that contains the following:
<img src="../images/foo.png">
If your browser obtained that page using
http://host/pages/foo.html # Path has 2 segments: "pages" and "foo.html"
your browser will attempt to load
http://host/images/foo.png # ok
However, if your browser obtained that page using
http://host/pages//foo.html # Path has 3 segments: "pages", "" and "foo.html"
you'll probably get the same page (because the server probably doesn't distinguish /pages//foo.html
from /pages/foo.html
), but your browser will erroneously try to load
http://host/pages/images/foo.png # XXX