人们谈论URLs、URIs和URNs,好像它们是不同的东西,但它们在肉眼看来是一样的。
它们之间有什么明显的区别呢?
来自RFC 3986。
一个URI可以进一步分类为一个定位器、一个名称或两者。 术语 术语"统一资源定位器"(URL)指的是URI的一个子集。 的子集,它除了识别一个资源外,还提供了一种通过描述资源的定位方法 统一资源定位器是指URI的一个子集,它除了识别资源外,还通过描述资源的主要访问机制,提供了一种定位该资源的方法 (例如,其网络位置)。 术语"统一资源名称" (URN)在历史上一直被用来指代URI下的 "urn"方案下的URI [RFC2141],它们被要求保持全球唯一的 即使资源不再存在或变得不可用,也要保持全球唯一和持久。 以及任何其他具有名称属性的URI。
因此,所有的URL都是URI(实际上不完全是--见下文),所有的URN都是URI--但是URN和URL是不同的,所以你不能说所有的URI都是URL。
编辑:我之前认为所有的URL都是有效的URI,但根据评论。
不是 "所有URL都是URI"。这取决于对RFC的解释。例如,在Java中,URI解析器不喜欢
[
或]
,这是因为规范说的是"不应该",而不是"不应"。
因此,不幸的是,这使水变得更加混浊。
如果你还没有读过Roger Pate'的回答,我建议你也这么做。
它们是同一回事。URI是对URL的一种概括。最初,URI被计划分为URL(地址)和URN(名称),但后来URL和URI之间没有什么区别,http URIs被用作命名空间,尽管它们实际上并不能定位任何资源。
维基百科会在这里给出你需要的所有信息。援引自http://en.wikipedia.org/wiki/URI。
URL是一个URI,除了识别一个资源外,还通过描述资源的主要访问机制或网络"位置",提供对该资源采取行动或获得其代表的手段。