URL, URN和URI的区别
- 统一资源标识符(URI,Uniform Resource Identifier),
URI和资源之间关系是多对一,一个URI仅仅标识一个资源,但一个资源可以有多个URI。
- 统一资源定位符(URL,Uniform Resource Locator)
URL是因特网上标准资源的地址,用来表达与所标识资源的交互方式。这个术语现在已经过时,因为并非所有的URI都需要表达特定交互协议的信息。但这个术语是Web历史的一部分,仍然被广泛使用。
- 统一资源名称(URN, Uniform Resource Name)
URN定义资源的身份,目标是提供全球唯一的资源名称。
URL和URN都是URI的特殊形式,一个URI标识了访问资源的机制,通常称为URL,HTTP URI就是URL的例子。如果URI有urn作为它的方案并且符合RFC 2141和RFC 2611要求,它就是URN。
URI, URL和URN三者区别:
URI通用语法
URI的通用语法如下:
URI = scheme:[//authority]path[?query][#fragment]
authority = [userinfo@]host[:port]
http://user.example.com/user?id_gte=123#page2 是一个URI,符合通用语法。但它也是一个URL,我们把它作为资源标识符使用。最后它还是个URN,在user服务本身之外,可以使用该标识符来关联user。