我多次向我解释过,所有URL都是URI,但并非所有URI都是URL。任何人都可以给出一个URI的例子但不是URL吗?
答案 0 :(得分:29)
从here中窃取的示例(其中还有差异的描述):
URL http://www.pierobon.org/iis/review1.htm
URN www.pierobon.org/iis/review1.htm#one
URI http://www.pierobon.org/iis/review1.htm.html#one
答案 1 :(得分:11)
瓮:ISBN:0451450523
答案 2 :(得分:6)
统一资源名称(URN)是一个URI,用于在特定名称空间中按名称标识资源。 URN可用于谈论资源而不暗示其位置或如何访问它。例如,URN urn:isbn:0-395-36341-1是URI
来自:维基百科:http://en.wikipedia.org/wiki/Uniform_Resource_Identifier
答案 3 :(得分:3)
XML Schema通常用URI标识,虽然它们的格式可能类似,但不能保证其中有任何内容,因为它不是URL。
如果必须验证XML文件,则必须能够识别正确的XML模式。在成功验证之前,必须在内容和模式作者之间共享标识手段,这意味着任何有用的东西。 URI填补了这个需求和其他任何东西一样好。请记住,为了使用XML文件,不一定需要模式。因此,它不需要是通用的可定位的或可用的,它只需要是可识别的。 URI的语义避免了资源必须“在这里”的含义,就像URL的情况一样,并且有充分的理由。这样的细节与识别任务无关。
架构发布者通常会将URI基于他们拥有的URL。我可以想象有很多理由这样做,但是对于一个,它有助于避免在没有中介的情况下命名冲突。当使用这样的约定时,很难抵制在URI所指向的位置处托管定义(如果它在URL处)。虽然知道必要,但我相信这样做是一种值得赞赏的努力,并且是良好信息架构的一个例子,但这一事实与URI填充的需求无关。
答案 4 :(得分:1)
既不是URL也不是URN的URI的示例将是数据URI,例如: 数据:,你好%20World 它不是URL也不是URN,因为URI包含数据。它既没有命名,也没有告诉您如何通过网络定位它。
从这里拍摄:https://webmasters.stackexchange.com/questions/19101/what-is-the-difference-between-a-uri-and-a-url
我相信TofuBeer(到目前为止获得最多票)的答案是错误的。
答案 5 :(得分:0)
常见的情况是URN,它是格式urn:namespace-id:resource-id
的URI。每个维基百科:
1997年在RFC 2141中定义,URN旨在作为 持久的,与位置无关的标识符,允许简单 将名称空间映射到单个URN名称空间。存在 这样的URI并不意味着所识别资源的可用性,但是 这些URI甚至需要保持全局唯一和持久性 当资源不再存在或变得不可用时。
两种风格的资源引用(URL和URN)后来在URI的概念下合并,但它们仍被认为具有不同的用途(强调我的):
可以将统一资源名称(URN)与人名相比较, 而统一资源定位器(URL)可以与他们的街道进行比较 地址。换句话说, URN标识项目, URL提供 查找的方法。
答案 6 :(得分:0)
要测试在单元测试中失败的异常(在Java中覆盖URI←→URL转换),我使用以下示例:
"_ "
-来自URI
的无效String
"data://valid-uri"
—有效的URI
,但无效,格式错误的URL
({{1}从MalformedURLException
抛出)。URI#toURL
-有效的"valid-uri"
,但无效的,非绝对的URI
({{1}从URL
抛出)。
IllegalArgumentException
—有效的URI#toURL
,但无效,格式错误的"http:// _"
({{1}从URL
抛出)。这可能不是RFC规范的完美答案,但这是Java的有效示例。