URI,URL,URN的区别

URI: Uniform Resource Identifier
URL: Uniform Resource Locator
URN: Uniform Resource Name

URI,URL,URN的区别

URI是其他两者的超集,也就是说URL和URN都是URI。URI的目的是标识资源,比如可以是数字,字符串等,但是仅仅是标识而已,不能通过它来获取资源。而URL更加具体,不仅可以标识具体的资源,而且还可以提供获取此资源的方式(这就是location的含义),如何通过http协议,或者是ftp协议等。

比如说,“张三”可以用来标识一个人,但是不能定位到某个具体的人,在中国可能同时存在很多个张三。假如你现在拨通了其中某个张三的电话,此时你就定位到了一个张三,或者你通过其中某个张三的地址,也可以找到他,这里的电话和地址就属于URL。很明显,电话和地址可以在定位的同时,还标识了某个具体的张三,而通过“张三”这个字符串不能定位到张三,所以URL属于URI,但URI不一定是URL。

URN通过一个独一无二且持久的名称标识一个资源。和URI的含义不同,URN必须唯一地指定,这一点很好理解,比如“张三”这个名称不能唯一地标识一个人,但是身份证号就可以唯一地标识。和URL的区别在于,URN并不能是用来定位资源,比如不能从身份证号看出来你户口所在地(假设你对身份证号的组成不了解),但是可以通过查询数据库,从而找到你的地址,也就是说URN可以在一定情况下转化为URL。在实际应用中,URN也不仅仅用来标识文件,还可以标识书,如何ISBN。