URI的标识和URL的定位 ; 但是, 定位器也是标识符 ,因此每个 URL 也是一个 URI,但是有些 URI 不是 URL。
这是我的名字,这是一个标识符。它就像一个 URI,但不能是一个 URL,因为它不会告诉你我的位置或如何联系我。在这种情况下,它也恰好在美国仅识别至少 5 个其他人。
这是一个定位器,它是该物理位置的标识符。它就像一个 URL 和 URI(因为所有的 URL 都是 URI),并且间接地将我识别为 “驻留...”。在这种情况下,它唯一地识别我,但如果我得到一个室友,那将会改变。
我说 “喜欢”,因为这些示例不遵循所需的语法。
来自维基百科 :
在计算中,统一资源定位符(URL)是统一资源标识符(URI)的子集,其指定所识别资源可用的位置以及用于检索它的机制。 在流行的用法和许多技术文档和口头讨论中,它经常被错误地用作 URI 的同义词 ,... [强调我的]
由于这种常见的混淆,许多产品和文档错误地使用一个术语而不是另一个术语,分配它们自己的区别,或者同义地使用它们。
我的名字 Roger Pate 可能就像一个URN (统一资源名称),除了那些受到更多监管并且意图在空间和时间上都是独一无二的。
因为我目前与其他人分享这个名字,所以它不是全球唯一的,也不适合作为 URN。然而,即使没有其他家庭使用这个名字,我也是以我的祖父的名字命名的,所以它在一段时间内仍然不会是唯一的。即使这是不是这样,我以后命名我的后代的可能性,使这个不适合作为 URN。
URN 与此严格唯一性约束中的 URL 不同,即使它们都共享 URI 的语法。
来自RFC 3986 :
URI 可以进一步分类为定位符,名称或两者。术语 “统一资源定位符”(URL)指的是 URI 的子集,其除了标识资源之外,还通过描述其主要访问机制(例如,其网络 “位置”)来提供定位资源的手段。历史上使用术语 “统一资源名称”(URN)来指代 “urn” 方案[RFC2141]下的两个 URI,即使资源不再存在或变得不可用,它们仍然是全局唯一且持久的,并且到具有名称属性的任何其他 URI。
因此所有 URL 都是 URI(实际上并不完全 - 见下文),并且所有 URN 都是 URI - 但 URN 和 URL 是不同的,因此您不能说所有 URI 都是 URL。
编辑:我以前认为所有的 URL 都是有效的 URI,但根据评论:
不是 “所有网址都是 URI”。这取决于 RFC 的解释。例如,在 Java 中,URI 解析器不喜欢
[
或]
,因为规范说 “不应该” 而不是 “不应该”。
不幸的是,这使得水更加混乱。
如果您还没有阅读过Roger Pate 的答案 ,我也建议您这样做。
URI 是使用短数字,字母和符号标识文档的标准。它们由RFC 3986定义- 统一资源标识符(URI):通用语法 。 URL,URN 和 URC 都是 URI 的类型 。
包含有关如何从其位置获取资源的信息。例如:
http://example.com/mypage.html
ftp://example.com/download.zip
mailto:[email protected]
file:///home/user/file.txt
tel:1-888-555-5555
http://example.com/resource?foo=bar#fragment
/other/link.html
(相对 URL,仅在其他 URL 的上下文中有用) URL 始终以协议( http
)开头,通常包含网络主机名( example.com
)等信息,通常还包含文档路径( /foo/mypage.html
)。 URL 可以具有查询参数和片段标识符。
通过唯一且持久的名称标识资源,但不一定告诉您如何在 Internet 上找到它。它通常以前缀urn:
开头urn:
例如:
urn:isbn:0451450523
通过其 ISBN 号识别书籍。 urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66
全球唯一标识符urn:publishing:book
- 一个 XML 名称空间,用于将文档标识为一种书籍。 URN 可以识别想法和概念。它们不仅限于识别文件。当 URN 表示文档时,它可以通过 “解析器” 转换为 URL。然后可以从 URL 下载该文档。
指向有关文档的元数据而不是文档本身。 URC 的一个示例是指向页面的 HTML 源代码,例如: view-source:http://example.com/
数据可以直接放入 URI 中,而不是将其放在互联网上或命名。一个例子是data:,Hello%20World
。
HTML 的 W3 规范说锚标记的href
可以包含 URI,而不仅仅是 URL。您应该可以输入 URN,例如<a href="urn:isbn:0451450523">
。然后,您的浏览器会将该 URN 解析为 URL 并为您下载该书。
不是我所知道的,但是现代网络浏览器确实实现了数据 URI 方案。
不。相对和绝对 URL 都是 URL(和 URI)。
不是。包含和不包含查询参数的 URL 都是 URL(和 URI)。
否。带有和不带有片段标识符的 URL 都是 URL(和 URI)。
不会. URL 被定义为 URI 的严格子集。如果解析器允许 URL 中的字符但不允许 URI 中的字符,则解析器中存在错误。规范详细说明了 URL 和 URI 的哪些部分允许使用哪些字符。某些字符可能仅允许在 URL 的某些部分中使用,但仅字符不是 URL 和 URI 之间的差异。
是。 W3C 意识到这有很多混乱。他们发布了一个URI 澄清文档 ,说明现在可以互换地使用术语 URL 和 URI(表示 URI)。将 URI 严格分段为不同类型(如 URL,URN 和 URC)不再有用。
URN 的定义现在比我上面所述的更宽松。 关于 URI的最新 RFC说,任何 URI 现在都可以是 URN(无论它是以urn:
开头的urn:
,只要它具有 “名称的属性”。即:即使资源不再存在或变得不可用,它仍具有全局唯一性和持久性。示例:HTML 文档类型中使用的 URI,例如http://www.w3.org/TR/html4/strict.dtd
。即使 w3.org 网站上的页面被删除,该 URI 仍将继续命名 HTML4 过渡文档类型。
URI的标识和URL的定位 ; 但是, 定位器也是标识符 ,因此每个 URL 也是一个 URI,但是有些 URI 不是 URL。
这是我的名字,这是一个标识符。它就像一个 URI,但不能是一个 URL,因为它不会告诉你我的位置或如何联系我。在这种情况下,它也恰好在美国仅识别至少 5 个其他人。
这是一个定位器,它是该物理位置的标识符。它就像一个 URL 和 URI(因为所有的 URL 都是 URI),并且间接地将我识别为 “驻留...”。在这种情况下,它唯一地识别我,但如果我得到一个室友,那将会改变。
我说 “喜欢”,因为这些示例不遵循所需的语法。
来自维基百科 :
在计算中,统一资源定位符(URL)是统一资源标识符(URI)的子集,其指定所识别资源可用的位置以及用于检索它的机制。 在流行的用法和许多技术文档和口头讨论中,它经常被错误地用作 URI 的同义词 ,... [强调我的]
由于这种常见的混淆,许多产品和文档错误地使用一个术语而不是另一个术语,分配它们自己的区别,或者同义地使用它们。
我的名字 Roger Pate 可能就像一个URN (统一资源名称),除了那些受到更多监管并且意图在空间和时间上都是独一无二的。
因为我目前与其他人分享这个名字,所以它不是全球唯一的,也不适合作为 URN。然而,即使没有其他家庭使用这个名字,我也是以我的祖父的名字命名的,所以它在一段时间内仍然不会是唯一的。即使这是不是这样,我以后命名我的后代的可能性,使这个不适合作为 URN。
URN 与此严格唯一性约束中的 URL 不同,即使它们都共享 URI 的语法。
来自RFC 3986 :
URI 可以进一步分类为定位符,名称或两者。术语 “统一资源定位符”(URL)指的是 URI 的子集,其除了标识资源之外,还通过描述其主要访问机制(例如,其网络 “位置”)来提供定位资源的手段。历史上使用术语 “统一资源名称”(URN)来指代 “urn” 方案[RFC2141]下的两个 URI,即使资源不再存在或变得不可用,它们仍然是全局唯一且持久的,并且到具有名称属性的任何其他 URI。
因此所有 URL 都是 URI(实际上并不完全 - 见下文),并且所有 URN 都是 URI - 但 URN 和 URL 是不同的,因此您不能说所有 URI 都是 URL。
编辑:我以前认为所有的 URL 都是有效的 URI,但根据评论:
不是 “所有网址都是 URI”。这取决于 RFC 的解释。例如,在 Java 中,URI 解析器不喜欢
[
或]
,因为规范说 “不应该” 而不是 “不应该”。
不幸的是,这使得水更加混乱。
如果您还没有阅读过Roger Pate 的答案 ,我也建议您这样做。
URI 是使用短数字,字母和符号标识文档的标准。它们由RFC 3986定义- 统一资源标识符(URI):通用语法 。 URL,URN 和 URC 都是 URI 的类型 。
包含有关如何从其位置获取资源的信息。例如:
http://example.com/mypage.html
ftp://example.com/download.zip
mailto:[email protected]
file:///home/user/file.txt
tel:1-888-555-5555
http://example.com/resource?foo=bar#fragment
/other/link.html
(相对 URL,仅在其他 URL 的上下文中有用) URL 始终以协议( http
)开头,通常包含网络主机名( example.com
)等信息,通常还包含文档路径( /foo/mypage.html
)。 URL 可以具有查询参数和片段标识符。
通过唯一且持久的名称标识资源,但不一定告诉您如何在 Internet 上找到它。它通常以前缀urn:
开头urn:
例如:
urn:isbn:0451450523
通过其 ISBN 号识别书籍。 urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66
全球唯一标识符urn:publishing:book
- 一个 XML 名称空间,用于将文档标识为一种书籍。 URN 可以识别想法和概念。它们不仅限于识别文件。当 URN 表示文档时,它可以通过 “解析器” 转换为 URL。然后可以从 URL 下载该文档。
指向有关文档的元数据而不是文档本身。 URC 的一个示例是指向页面的 HTML 源代码,例如: view-source:http://example.com/
数据可以直接放入 URI 中,而不是将其放在互联网上或命名。一个例子是data:,Hello%20World
。
HTML 的 W3 规范说锚标记的href
可以包含 URI,而不仅仅是 URL。您应该可以输入 URN,例如<a href="urn:isbn:0451450523">
。然后,您的浏览器会将该 URN 解析为 URL 并为您下载该书。
不是我所知道的,但是现代网络浏览器确实实现了数据 URI 方案。
不。相对和绝对 URL 都是 URL(和 URI)。
不是。包含和不包含查询参数的 URL 都是 URL(和 URI)。
否。带有和不带有片段标识符的 URL 都是 URL(和 URI)。
不会. URL 被定义为 URI 的严格子集。如果解析器允许 URL 中的字符但不允许 URI 中的字符,则解析器中存在错误。规范详细说明了 URL 和 URI 的哪些部分允许使用哪些字符。某些字符可能仅允许在 URL 的某些部分中使用,但仅字符不是 URL 和 URI 之间的差异。
是。 W3C 意识到这有很多混乱。他们发布了一个URI 澄清文档 ,说明现在可以互换地使用术语 URL 和 URI(表示 URI)。将 URI 严格分段为不同类型(如 URL,URN 和 URC)不再有用。
URN 的定义现在比我上面所述的更宽松。 关于 URI的最新 RFC说,任何 URI 现在都可以是 URN(无论它是以urn:
开头的urn:
,只要它具有 “名称的属性”。即:即使资源不再存在或变得不可用,它仍具有全局唯一性和持久性。示例:HTML 文档类型中使用的 URI,例如http://www.w3.org/TR/html4/strict.dtd
。即使 w3.org 网站上的页面被删除,该 URI 仍将继续命名 HTML4 过渡文档类型。