URL快捷方式html
==================摘自《HTTP权威指南》=======================算法
WEB客户端能够理解并使用几种URL快捷方式。相对URL是在某职员内部指定一个资源的快捷缩略方式。不少浏览器还支持URL的“自动扩展”也就是用户输入URL的一个关键部分,而后由浏览器将其他部分填充起来。浏览器
一、 相对URL服务器
URL有两种方式:绝对URL和相对URL。绝对URL中包含有访问资源所需的所有信息。另外一方面,相对URL是不完整的。要从相对URL中获取访问资源所需的所有信息,就必须相对于另外一个,被称为基础(base)的URL进行解析。spa
相对URL是URL的一种便捷缩略记法。若是你收工写过HTML的话,可能就会发现相对URL是多么便捷了。例2-1是一个嵌入了相对URL的HTML文档实例。htm
例2-1是资源:blog
http://www.joes-hardware.com/tools.html 的HTML文档。继承
在这个HTML文档中有一个包含了URL ./hammer.html的超级连接。这个URL看起来并不完整的,但其实是个合法的相对URL。能够相对于它所在文档的URL对其进行解释。在这个例子中,就是相对于Joe的五金商店Web服务器的资源/tools.html.资源
使用缩略形式的相对URL语法,HTML的编写者能够省略URL中的方案、主机和其余一些组件了。这些组件能够从他们所属资源的基础URL中推导出来。其余资源的URL也可使用这种缩略形式来表示。文档
在例2-1,基础URL为:
http://www.joes-hardware.com/tools.html
用这个URL做为基础,能够推导出缺失的信息。咱们知道资源名为./hammer.html,但并不知道方案和主机名是多少。经过这个基础的URL,能够推导出方案为http,主机名为www.joes-hardware.com。下图展现了相对URL经过基础URL推导出绝对URL:
相对URL只是URL的片断或者一小部分。处理URL的应用程序(好比浏览器)要可以在相对URL和绝对URL之间进行转换。
还须要注意的是,相对URL为保持一组资源的(好比一些HTML页面)便携性提供了一种便捷方式。若是使用的是相对URL,就能够在搬移一组文档的同时,仍然保持链接的有效性。由于相对URL都是基于新基础进行解释的。这样就能够实如今其余服务器上提供镜像内容之类的功能。
(1)、基础URL
转换处理的第一步就是找到基础URL,基础URL做为相对URL的参考点使用的,能够来自如下几个不一样的地方。
a、在资源中显示提供
有些资源会显示的指定基础URL。好比html文档中可能包含了一个定义基础URL的HTML标记<BASE>,经过它来转换那个HTML文档中的全部相对URL。
b、封装资源的基础URL
若是在一个没有显示指定基础URL的资源中发现了一个相对URL,能够将它所属资源的URL做为基础。
c、没有基础URL
在某些状况下,没有基础URL。这一般意味着你有一个相对URL,但有时可能只是一个不完整或损坏的URL。
(2)、解析相对引用
前面咱们介绍了URL的基础组件和语法。要将相对URL转换为一个绝对URL,下一步要作的就是将相对URL和基础URL划分红组件段。
实际上这样只是在解析URL,但这种作法会将其划分红一个个组件,所以一般会称做分解(decomposing)URL。只要将基础和相对URL划分红了组件,就能够应用图2-5中的算法来完成转换了。
这个算法将一个相对URL转换成其绝对模式,以后就能够用它来应用资源了。
使用图2-5中的算法将例2-1中的相对./hammer.html转换成绝对URL。
a、 路径为./hammer.html,基础URL为http://www.joes-hardware.com/tools.html
b、 方案为空,沿着图表的左半边向下处理,继承基础URL方案
c、 至少一个组件为空,一直处理到底端,继承主机和端口组件
d、 未来自相对URL(路径./hammer.html)组件与咱们继承来的组件(方案:http,主机:www.joes-hardware.com,端口:80)合并起来,获得新的绝对URL:http://www.joes-hardware.com/hammershtml
二、自动扩展URL
有些浏览器会在用户提交URL以后,或者在用户输入的时候尝试着自动扩展URL。这就是为用户提供了一条捷径:用户不须要输入完整的URL,由于浏览器会自动扩展。
这些“自动扩展”特性有一下两种方式
(1)、主机名扩展
在主机名扩展中,只要有些小提示,浏览器一般能够在没有帮助的状况下,将你的主机名扩展为完整的主机名。好比,你的地址栏输入yahoo,浏览器会自动在主机名中插入www和.com,构建出www.yahoo.com。若是找不到与yahoo匹配的站点,有些浏览器会放弃以前尝试的几种扩展形式。浏览器经过这些简单的技巧来节省你的时间,减小找不到的可能。
(2)、历史扩展
浏览器用来节省用户输入URL时间的另外一种技巧是,将之前用户访问过的URL历史存储起来。当你输入URL时,它们就能够将你输入的URL与历史记录在中URL的前缀进行匹配,并提供一些完整的选项供你选择。所以,若是你输入了一个之前访问过的URL的开始部分,好比http://www.joes-,浏览器就可能会建议使用 http://www.joes-hardware.com。 而后你就能够选择这个地址,不用输入完整的URL。