URI、URL、URN
URI 统一资源标识符
URL 统一资源定位符
URN 统一资源名称
URI是一种资源定位的概念,而URL和URN是其具体的实现。
URL和URN的主要区别在于位置相关性。
举例说明:
http://www.baidu.com/index.html 这是一个标准的URL,由[协议]://[主机]/[资源路径]组成。这个URL定位了一个唯一的互联网资源(假设访问者在同一个网络环境下),目前绝大多数的网络应用都是基于URL实现的。URL需要由具体的主机和资源路径来构成(即位置相关),当然你可以随便构造虚拟的主机和资源,只不过无法保证它的可访问性就是了。
而对于URN,很多人可能从来都没有听过(我也是刚刚百度的),更别说它的应用。不过提到一样东西我想大家应该又都会很熟悉,那就是磁力链接(Magnet URI)。像这个磁力链接 magnet:?xt=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C,该链接既没有主机也没有资源路径,只有一串hash字符串(由资源文件生成的特殊hash值)和协议头组成。但是将其复制到迅雷之类的下载工具中就能获取到资源,这里就体现到了URN的与位置无关的特性,至于它具体是如何实现的不在此讨论(分布式网络)。