1 定义
URI:全称Uniform Resource Identitfier,也就是统一资源标识符,可以标识互联网上某一资源,用来标识抽象或物理资源的一个紧凑字符串。
URL:全称Uniform Resource Locator,统一资源定位符,一种定位资源的主要访问机制的字符串,一个标准的URL必须包括:protocol、host、port、path、parameter、anchor。
URN:全称Uniform Resource Name,统一资源命名符,解析需要解析器,通过特定命名空间中的唯一名称或ID来标识资源。
2 三者关系
三者关系:URI是一个大的集合,里面包含了URL和URN。
URL与URN的区别:
个人的身份证号就是URN,个人的家庭地址就是URL,URN可以唯一标识一个人,而URL可以告诉邮递员怎么把货送到你手里。
在举例:假设在a服务器(电脑)上的images文件夹下存在了一张猫的图片(cat.jpg),通过URL可以这样访问:https:/127.0.0.1xxxx/images/cat.jpg,通信协议+电脑IP地址+本机资源定位地址。但是当a服务器损坏或者cat.jpg移动位置时,就无法在通过原来的URL地址访问到。
URN的原理是将这张图片通过解析器解析成一个具有唯一标识名的文件(1a34f345g5545g455gg39df),这样通过这个唯一标识,无论该图片是否移动目录或者服务器是否宕机都可以直接访问,但是解析的成本过高,因此一般资源访问的主流还是采用URL的方式。
URI与URL区别:
统一资源标志符URI就是在某一规则下能把一个资源独一无二地标识出来。URI和URL都定义了资源是什么,但URL还定义了该如何访问资源。URL是一种具体的URI,它是URI的一个子集,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI是一种语义上的抽象概念,可以是绝对的,也可以是相对的。而URL则必须提供足够的信息来定位,是绝对的。
3 举例说明
URI(统一资源标志符)
服务器资源名被统称为统一资源标识符;就像邮政地址,URI可以唯一地标识一个资源的信息。URI有两种形式,即URL和URN。
格式: [//[user:password@]host[:port]][/]path[?query][#fragment]
root:123456@(127.0.0.1:3306)/testdb?charset=utf8
ftp://ftp.is.co.za/rfc/rfc1808.txt
http://www.ietf.org/rfc/rfc2396.txt
ldap://[2001:db8::7]/c=GB?objectClass?one
mailto:John.Doe@example.com
news:comp.infosystems.www.servers.unix
tel:+1-816-555-1212
telnet://192.0.2.16:80/
urn:oasis:names:specification:docbook:dtd:xml:4.1.2undefined
URL(统一资源定位符)
URL描述了一台特定服务器上某资源的特定位置。它们可以明确说明如何从一个精准、固定的位置获取资源。
https://developer.mozilla.org
https://developer.mozilla.org/en-US/docs/Learn/
https://developer.mozilla.org/en-US/search?q=URL
https://tools.ietf.org/html/rfc2396#section-3.1
URL格式
Protocol 访问资源所使用的协议类型 。
Domain 请求的域名,表明正在请求的服务器,也可直接使用IP。
Port 指定服务器连接的网络端口号,此项是可选项,若省略则自动使用默认端口号。
Path 指定服务器上的文件路径来定位特指的资源。
Fregment 使用片段标识符通常可标记出已获取资源中的子资源(文档中的某个位置)。
Quering String 针对已指定的文件路径内的资源,可以使用查询字符串传入任意参数。
URN(统一资源命名)
URN是作为特定内容的唯一名称使用的,与目前的资源所在地无关。如图书的编号(ISBN)urn:isbn:0451450523。