不是URL的URI示例?

时间:2009-04-07 02:05:52

标签: url uri web-standards

我多次向我解释过,所有URL都是URI,但并非所有URI都是URL。任何人都可以给出一个URI的例子但不是URL吗?

7 个答案:

答案 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)

答案 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的有效示例。