以下内容出自《网络是怎么连接的》一书。
www.lab.glasscome.com/dir1/file.h… 这是一个以“http:”开头的典型URL,但有时候我们也会见到一些不太一样的URL,例如下面这个URL 是以“/”来结尾的。
我们可以这样理解,以“/”结尾代表/dir/ 后面本来应该有的文件名被省略了。根据URL 的规则,文件名可以像前面这样省略。
不过,没有文件名,服务器怎么知道要访问哪个文件呢?其实,我们会在服务器上事先设置好文件名省略时要访问的默认文件名。这个设置根据服务器不同而不同,大多数情况下是index.html 或者default.htm 之类的文件名。因此,像前面这样省略文件名时,服务器就会访问/dir/index.html或者/dir/default.htm。
还有一些URL 是像下面这样只有Web 服务器的域名的,这也是一种省略了文件名的形式。
这个URL 也是以“/”结尾的,也就是说它表示访问一个名叫“/”的目录A。而且,由于省略了文件名,所以结果就是访问/index.html 或者/default.htm 这样的文件了。
那么,下面这个URL 又是什么意思呢?
这次连结尾的“/”都省略了。像这样连目录名都省略时,真不知道到底在请求哪个文件了,实在有些过分。不过,这种写法也是允许的。当没有路径名时,就代表访问根目录下事先设置的默认文件A,也就是/index.html 或者/default.htm 这些文件,这样就不会发生混乱了。
不过,下面这个例子就更诡异了。
(d)www.lab.glasscom.com/whatisthis
前面这个例子中,由于末尾没有“/”,所以whatisthis 应该理解为文件名才对。但实际上,很多人并没有正确理解省略文件名的规则,经常会把目录末尾的“/”也给省略了。因此,或许我们不应该总是将whatisthis 作为文件名来处理。一般来说,这种情况会按照下面的惯例进行处理:如果Web 服务器上存在名为whatisthis 的文件,则将whatisthis 作为文件名来处理;如果存在名为whatisthis 的目录,则将whatisthis 作为目录名来处理B。
浏览器的***步工作就是对URL 进行解析。