【问题标题】:Example of a URI that isn't a URL?不是 URL 的 URI 示例?
【发布时间】:2010-10-17 23:01:11
【问题描述】:

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

【问题讨论】:

  • data uri 是一个不是 url 的 uri 示例。示例:data:,Hello%2C%20World!

标签: url uri web-standards


【解决方案1】:

统一资源名称 (URN) 是一个 URI,它通过名称在特定命名空间中标识资源。 URN 可用于谈论资源而不暗示其位置或如何访问它。例如,URN urn:isbn:0-395-36341-1 是一个 URI

来自:维基百科:http://en.wikipedia.org/wiki/Uniform_Resource_Identifier

【讨论】:

    【解决方案2】:

    常见的情况是URN,它是格式为urn:namespace-id:resource-id 的URI。根据维基百科:

    在 1997 年的 RFC 2141 中定义,URN 旨在用作 持久的、与位置无关的标识符,允许简单的 将命名空间映射到单个 URN 命名空间。的存在 这样的 URI 并不意味着所标识资源的可用性,但 此类 URI 必须保持全局唯一性和持久性,即使 当资源不再存在或变得不可用时。

    这两种资源引用样式(URL 和 URN)后来在 URI 的概念下合并,但它们仍然被认为具有不同的用途(强调我的):

    统一资源名称 (URN) 可以与人名进行比较, 而统一资源定位器 (URL) 可以与他们的街道进行比较 地址。换句话说,URN 标识一个项目,一个 URL 提供一个 找到它的方法

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    • @Vini.g.fer 好点,现在已经清理干净了。不过,我不得不承认,这个问题本身实际上是在乞求只提供链接的答案——也许这是一个问题质量问题?
    【解决方案3】:

    【讨论】:

    • 我认为 isbn 与网络标准无关。
    【解决方案4】:

    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
    

    【讨论】:

    • 我觉得这是错误的。这里的URI例子不也是一个URL吗?它当然可以定位资源并对其进行识别。
    • 据我所知,所有这些示例都是 URI,它们也是 URL!
    【解决方案5】:

    XML Schema 通常使用 URI 进行标识,虽然它们的格式可能类似,但由于它不是 URL,因此无法保证其中存在任何内容。

    如果您必须验证 XML 文件,则必须能够识别正确的 XML 架构。在成功验证意味着任何有用之前,必须在内容和模式作者之间共享一种标识方法。 URI 可以很好地满足这一需求。请记住,使用 XML 文件不一定需要模式。因此,它不需要是通用的可定位或可用的,它只需要是可识别的。 URI 的语义避免了资源必须位于“此处”的暗示,就像 URL 的情况一样,并且有充分的理由。这样的细节与识别任务无关。

    架构发布者通常会基于他们拥有的 URL 来创建 URI。我可以想象这样做有很多原因,但其中一个原因是,它有助于避免在没有中介的情况下发生命名冲突。当使用这样的约定时,很难拒绝将定义托管在 URI 将指向的位置(如果它位于 URL 的位置)。虽然通过了解手段是必要的,但我相信这样做标志着一项值得赞赏的努力,并且是良好信息架构的一个例子,但这一事实仍然与 URI 满足的需求无关。

    【讨论】:

      【解决方案6】:

      既不是 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 的答案(目前投票最多)是错误的。

      【讨论】:

        【解决方案7】:

        为了测试我的单元测试中失败的异常(涵盖 URI ←→ Java 中的 URL 转换),我使用以下示例:

        • "_ " — 来自 String 的无效 URI
        • "data://valid-uri" — 有效的 URI,但无效,格式错误的 URLMalformedURLExceptionURI#toURL 抛出)。
        • "valid-uri" — 有效 URI,但无效,非绝对 URLIllegalArgumentExceptionURI#toURL 抛出)。
        • "http:// _" — 有效的URL,但无效,格式错误的URIURISyntaxExceptionURL#toURI 抛出)。

        这可能不是 RFC 规范的完美答案,但这些是 Java 的有效示例。

        【讨论】:

          猜你喜欢
          • 2017-07-20
          • 2017-08-29
          • 2012-02-23
          • 2011-07-19
          • 1970-01-01
          • 1970-01-01
          • 2012-03-16
          • 1970-01-01
          • 2018-11-17
          相关资源
          最近更新 更多