以前一直没有搞明白这几个东东的关系。在baidu上查的中文资料大多只介绍了语法的细节,对这几个概念并没有解释的和明白。今天大概看了一下
RFC3986后才算把这几个概念搞清楚。RFC关于URI是如下定义的:
"A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. "下面对组成URI的三个词分别做一下解释。
如果一个URI是URL则说明该URI包含了访问某一资源的方式,否则我们认为这个URI仅仅是一个URN。其实不必非要把一个URI归为URL或者URN两者中的某一类,有时一个URI可能既是一个URL也是一个URN,这要看发布该URI的机构怎么规定。
- Uniform,统一。统一可以带来一些好处。. 它使得不同类型的资源标识符在同一个上下文中使用,即使对这些资源的访问方式有可能是不同的。
- Resource,资源。这里的资源可以是任何东西,如电子文档、图片和服务等。而且也不一定是可以通过Internet访问到的资源,例如人、企业、图书馆里的书等。同样,资源也可以是抽象的概念,如关系(父母,雇员),数值(零,一,无穷)。
- Identifier,标识符。标识符表示URI用来区分资源。这种标识可以有各种不同的形式,如用名字作为标识符,或者用访问这种资源的地址作为标识符。因此URL和URN是URI的子集,即URI = { URL, URN, ...}。
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/
如果一个URI是URL则说明该URI包含了访问某一资源的方式,否则我们认为这个URI仅仅是一个URN。其实不必非要把一个URI归为URL或者URN两者中的某一类,有时一个URI可能既是一个URL也是一个URN,这要看发布该URI的机构怎么规定。