区别
URI 指的是一个资源,URL 指的是用地址定位一个资源,URN 指的是用名称定位一个资源。 即URL 和 URN 是 URI 的子集。
如图所示:
uri-url-urn区别
举个例子:
寻找一个具体的人:如果通过地址找,即xx省xx市xx区 … xx单元xx室的主人,这就是 URL(通过位置定位资源);如果通过身份证号去找就是 URN(通过身份证号表示某个人,不通过某个人所在的位置)。
统一资源标志符URI就是在某一规则下能把一个资源独一无二地标识出来。
url:
住址协议://地球/中国/浙江省/杭州市/西湖区/某大学/14号宿舍楼/525号寝/张三.人
可以看到,这个字符串同样标识出了唯一的一个人,起到了URI的作用,所以URL是URI的子集。URL是以描述人的位置来唯一确定一个人的。
在上文我们用身份证号也可以唯一确定一个人。对于这个在杭州的张三,我们也可以用,这种方式即
urn:
身份证号:123456789
来标识他。 所以不论是用定位的方式还是用编号的方式,我们都可以唯一确定一个人,都是URl的一种实现,而URL就是用定位的方式实现的URI。
一般情况写,符合标准的url,是带着目录名和文件名的,所以url一般就是uri,但是uri可以是url,也可以是urn。
尽管url和urn都可以获取资源,但是他们特点不同
URL 是 Internet 上用来描述资源的字符串,标识了一个互联网资源,并指定了对其进行操作或者获取资源的方法。
url本身就是uri的一种,它包含了文件的路径,所以可以直接当uri使用
(前提是http的url)
目前最大的缺点是当信息资源的存放地点发生变化时,必须对 URL 作出相应的改变。
URN 是基于某名字空间通过名称指定资源的 URI。人们可以通过 URN 来指出某个资源,而无需指出其位置和获得方式。资源无需是基于互联网的。例如,URNurn:ISBN0-395-36341-1 指定标识系统(即国际标准书号ISBN)和某资源在该系统中的唯一表示的 URI。它可以允许人们在不指出其位置和获得方式的情况下谈论这本书。