1.5 URL
统一资源定位符(uniform Resource Locator,缩写为URL)是地址的别名。它包含的信息指出文件的位置以及浏览器应该对它做什么。因特网上的每个文件都有一个惟一的URL。
URL的第一部分称为模式(scheme)。它告诉浏览器如何处理将要打开的文件。最常见的模式是HTTP,即超文本传输协议(Hypertext Transfer Protocol)。这个协议用来访问网页(图1-16)。
图1-16 基本URL包含模式、服务器名称、路径和文件名
图字:模式 服务器名称 路径 文件名
URL的第二部分是文件所在的服务器的名称,后面是到达这个文件的路径和文件本身的名称。有时候,URL以斜杠结尾,而没有给出文件名(图1-17)。在这种情况下,URL引用路径中最后一个目录中的默认文件(通常对应于主页),这个文件常常称为index.html或default.htm。
图1-17 以斜杠结尾而没有文件名的URL指向最后一个目录(在这个例子中是liz目录)中的默认文件。常见的默认文件名是index.html或default.htm
其他常见的模式有HTTPS(用于安全网页)、FTP(文件传输协议,用于下载文件,见图1-18)、Mailto(用于发送电子邮件,见图1-19)和File(用于访问本地硬盘或本地文件共享网络上的文件,见图1-20)。
图1-18 当用户点击这个URL时,浏览器将开始按FTP方式传输文件prog.exe
图字:模式 服务器名称 路径 文件名
图1-19 电子邮件地址的URL包括模式mailto,后面是一个冒号(没有斜杠),然后是电子邮件地址本身
图字:模式 电子邮件地址
图1-20 使用File模式引用本地Windows机器上的文件。对于Macintosh,使用file:///硬盘/路径/文件名。竖线不是必需的(Windows有时候也不需要竖线)
图字:模式 盘符 竖线 路径和文件名
1.5.1 绝对URL
URL可以是绝对的,也可以是相对的(图1-21)。绝对URL(alsolute URL)显示文件的完整路径,包括模式、服务器名称、完整路径和文件名本身。它就像是完整的通信地址,包括姓名门牌号、街道名称、城市、州、邮政编码和国家。无论信件来自哪里,邮局都能够按照地址找到收件人。对于URL,这意味着绝对URL本身所在的位置与被引用的实际文件的位置无关。无论绝对URL是在你的服务器还是我的服务器上的网页中,它看起来是完全一样的。
图1-21 包含URL的文档(在这个例子中是youarehere.html)是相对URL的参照点。换句话说,相对URL是相对于这个文件在服务器上的位置,而绝对URL的位置就没有这种作用
图字:服务器 文件夹/目录
在引用别人的服务器上的文件时,总是应该使用绝对URL。对于FTP站点或任何不使用HTTP协议的URL,也需要使用绝对URL。
绝对URL与相对URL
|
文件名 |
绝对URL(可以在任何地方使用) |
相对URL(只能用在youarehere.html中) |
|
index.html |
www.site.com/web/index.html |
index.html |
|
image.gif |
www.site.com/web/images/image.gif |
images/image.gif |
|
data.html |
www.site.com/info/data.html |
../info/data.html |
|
homepg.html |
www.remote.com/pub/homepg.html |
(没有:使用绝对URL) |
|
info.html |
www.remote.com/bcn/info.html |
(没有:使用绝对URL) |
1.5.2 相对URL
如果我想告诉你我邻居家的位置,那我不会说出他家的完整地址,而是说“右边第三个门”。这就是个相对(relative)地址,它指出的位置是以信息提供者的位置为参照的。如果在别的城市中按照“右边第三个门”寻找的话,你不可能找到我的邻居。
同样,相对URL以包含URL本身的文件的位置为参照点,描述目标文件的位置。所以,相对URL可以表达“显示本页面同一所在的目录下的xyz图像”这样的意思。
如果目标文件与当前页面(也就是包含URL的页面)在同一个目录中,那么这个文件的相对URL仅仅是文件名和扩展名(图1-22)。如果目标文件在当前目录的子目录中,那么它的相对URL是子目录名,后面是一条斜杠,然后是目标文件的文件名和扩展名(图1-23)。
图1-22 如果目标文件与包含链接的文件在同一个目录中(见图1-21),那么这个文件的相对URL仅仅是文件名和扩展名
图字:在当前文件夹中,有一个称为index.html的文件……
图1-23 对于当前文件夹的子文件夹中的文件(见图1-21),应该在文件名前面添加文件夹名称和斜杠
图字:在当前文件夹中,有一个称为images的文件夹……
……包含 ……一个称为image.gif的文件
如果要引用文件层次结构中更高层目录中的文件,那么使用两个句点和一条斜杠(图1-24)。可以组合和重复使用两个点号和一个斜线,从而引用当前文件所在的硬盘上的任何文件。
图1-24 在图1-21中可以看到,这个文件位于包含当前文件夹的文件夹的子文件夹中(真够拗口的!)。在这种情况下,使用两个句点和一条斜杠上升一级,然后指出子目录,再加上斜杠,最后是文件名
图字:包含当前文件夹的文件夹……
……包含…… ……一个称为“info”的文件夹……
……包含…… ……一个称为data.html的文件
一般来说,对于同一服务器上的文件,应该总是使用相对URL。它们更容易输入,而且在将页面从本地系统转移到服务器上时更方便。只要每个文件的相对位置保持不变,链接就仍然是有效的。
相对URL的一个额外好处是,只要模式是HTTP,就不必输入它。







