日期:2014-05-20  浏览次数:20784 次

URI URL URN
今天想深究一下 URL URI URN 的区别。在网上找了很多资源,结果还是一头雾水~~~很郁闷~~特此发帖~~~
如果你真正的明白,请告诉我~~不胜感激~~~我在网上找了一天答案~~看了很多文章~~~最后还是不明白~~~

以下是我找到的一些资源:
引用
http://www.ibm.com/developerworks/cn/xml/x-urlni.html
http://blog.csdn.net/alexmajy/archive/2007/06/07/1642314.aspx


还有一些资源从功能的角度说明 URI 和 URL。例如说 URI 管标识资源,“定位资源”是 URL 的事。最具有说服力的就是 JAVA api 本身所提供的 URI 和 URL 两个类提供的方法。
但是单从字符串结构上能否区分 URL 和 URI 呢

在 Java URI 和 URL 的 API 文档中,也有相关的介绍,但是,URI 的文档中说:
引用
The path component of a hierarchical URI is itself said to be absolute if it begins with a slash character ('/'); otherwise it is relative. The path of a hierarchical URI that is either absolute or specifies an authority is always absolute.

让我感到不解。

还有:
在 URI 的文档中提到:
引用
A URL must be absolute, that is, it must always specify a scheme.
URL 必须是绝对的,即它必须始终指定一个方案。

但在 URL 的文档中却:
引用
An application can also specify a "relative URL", which contains only enough information to reach the resource relative to another URL.
应用程序也可以指定一个“相对 URL”,它只包含到达相对于另一个 URL 的资源的足够信息。


还有:
引用
http://forum.csdn.net/PointForum/Forum/PostTopic.aspx

是 URI 也是 URL
那:
引用
forum.csdn.net/PointForum/Forum/PostTopic.aspx (1)
/PointForum/Forum/PostTopic.aspx (2)
abc/a.html (3)

这些都是 URI ,但他么是 URL 么?

如果按照 http://blog.csdn.net/alexmajy/archive/2007/06/07/1642314.aspx 中的解释,他么不是!
但我却认为是“相对URL”,但是 URL 可以为“相对”么?


.... So much question~~ 很郁闷~~ 很苦恼~~~

------解决方案--------------------
URN , URL 不过是 URI 的一个特例。就像正三角形是三角形一样。
相对URL是在特定的上下文中才有意义。 没有上下文,根本没有意义。
W3C 不是又定义了 xml:base
------解决方案--------------------
这几个词乱用得确实很厉害。
我以前查过相关资料(主要来自wiki),LZ可参考:

URI是最广泛的一个概念,泛指资源的标识,具体包含URL和URN两种。

URN是一种命名规则,格式是
URN:协议名称:类别数据,
具体格式由具体协议自定。
例如图书ISBN可以为 URN:isbn:isbn号。

URL就是最常见的,最完整的格式是:
资源类型://用户名:密码@域名:端口/路径?查询参数#anchor
例如:http://www.g.cn/?query=adfa ftp://a:a@hh.edu:21/a

做个类比,URI就像是个人识别方式,URN可比作他的名字(或身份证),URL可比作他的住址。

本来URL称为URI是正确的,
但不知为什么,现在很多人将绝对URL简称为URL,将相对URL称为URI,
这就是巨大混乱的来源。

可参考wiki, http://en.wikipedia.org/, 搜URI URL URN.
里面有相关的RFC链接。

PS:
顺便发发牢骚,
想查严谨的技术资料,最好不要找国内的,
一来缺乏严谨,很多都是个人见解,泛泛而谈;
二来互相抄袭的太多,完全淹没在相同的无用信息里,自己受累。