【问题标题】:What is the definition of an absolute URL (fully qualified?)绝对 URL 的定义是什么(完全限定?)
【发布时间】:2013-06-28 17:08:53
【问题描述】:

有(至少)三种方法可以链接到资源:

  1. href="foo/bar.html"
  2. href="/foo/bar.html"
  3. href="http://example.com/foo/bar.html"

第一个是“相对网址”,没问题。但我已经看到 (2) 和 (3) 都被称为“绝对 URL”。哪个被正确称为“绝对 url”,另一个的正确名称是什么?

(参考相关标准或其他官方文档的奖励积分。)

【问题讨论】:

    标签: url nomenclature


    【解决方案1】:

    RFC 3986 定义统一资源标识符。

    以单个斜杠字符开头的相对引用是
    称为绝对路径引用。一个相对参考
    不以斜线字符开头的称为相对路径引用。

    1. href="foo/bar.html" 是一个相对引用,具体来说是一个相对路径引用
    2. href="/foo/bar.html"absolute path 的相对引用
    3. href="http://example.com/foo/bar.html"absolute URI
    4. href="//example.com/foo/bar.html" 是一个网络路径参考

    以两个斜杠字符开头的相对引用称为网络路径引用;这种引用很少使用。

    【讨论】:

    • 对于#4,同意它们很少使用,但我想说它们有很好的用途。在同一路径上同时托管在 HTTP 和 HTTPS 中的任何内容都将从中受益——在不需要时避免 HTTPS 的开销,并在安全页面上使用它以避免浏览器警告。托管在 CDN 上的脚本就是一个很好的例子:(see this post)
    • @JoeEnos 我同意你的看法;这是 RFC 的直接引用。
    • 有趣的是仅仅 4 年后,network-path references 在 CDN 脚本引用中无处不在。
    【解决方案2】:

    “绝对 URL 包含大量信息,这些信息可能已经从基础文档检索的上下文中获知,包括方案、网络位置和部分 URL 路径。”

    https://www.rfc-editor.org/rfc/rfc1808

    数字 (2) 是绝对路径,数字 (3) 是绝对 URL。

    【讨论】:

      【解决方案3】:

      我喜欢 W3 的描述 here:

      如果解析 URL 会产生相同的输出,则 URL 是绝对 URL 不管它是相对于什么解决的,并且该输出不是 失败。

      它没有提出方案、路径或任何其他类似的概念,但基本上只是说相同的输入总是带来相同的输出。关于#3,你只能这么说。

      不过,我不会过多地关注技术细节 - 如果您的宇宙是网站,#2 仍然是绝对的。如果您的宇宙是计划,那么像//example.com/foo/bar.html 这样的东西也是绝对的。我认为在这些情况下,“绝对”这个词从开发人员的角度来看仍然是有意义的。

      【讨论】:

        【解决方案4】:

        我听说#2 的术语是“root relative”。我相信这是一个有用的定义,因为它的含义在措辞中很清楚,并且很容易将其与 #1 和 #3 区分开来。

        【讨论】:

          【解决方案5】:

          RFC 3986URI 通用语法)在 4.3 节中指定。绝对URI如下规则:

          absolute-URI = scheme ":" hier-part [ "?" query ]

          因此,#2 不是绝对 URI

          【讨论】:

            【解决方案6】:

            我相信 (2) 也是一个相关 URL,而 (3) 是一个绝对 URL。

            http://kb.iu.edu/data/abwp.html 展示了一些示例。

            http://www.wisegeek.com/what-is-an-absolute-url.htm,它是这样解释的:

            “绝对 URL 提供完整的位置信息。它以 http:// 开头并继续,包括每个细节。这意味着如果网站管理员要更改原始文件的位置,绝对 URL 规范会找到图像,而相对 URL 规范不会。”

            【讨论】:

            • 我相信你基本上是正确的,但是像这样的二手参考资料很容易导致 FUD,这就是我要求参考权威来源的原因。
            【解决方案7】:

            只有 #3 符合绝对 URL 的定义。 1 和 2 是相对 URL。

            相对 URL(定义在 [RFC1808] 中)不包含任何协议或机器信息,其路径通常指的是与当前文档位于同一台机器上的 HTML 文档。相对 URL 可能包含相对路径组件(“..”表示父位置)并且可能是片段 URL。 来源:http://www.w3.org/TR/WD-html40-970708/htmlweb.html

            一个 URL 是一个绝对 URL,如果解析它会导致相同的输出,而不管它是相对于什么解析的,并且该输出不是失败的。 来源:http://www.w3.org/TR/url/

            【讨论】:

              【解决方案8】:

              通过一些进一步的视觉示例来支持其他答案。

              https://datacash.custhelp.com/app/answers/detail/a_id/1067/~/fully-qualified-url

              完全限定的 URL 包含 http://(或 https://www)。如果 URL 只是您的域,则还应提供尾随 /。

              这些 URL 是完全限定的:

              http://www.datacash.com/
              https://www.datacash.com/
              http://datacash.com/
              https://datacash.com/
              http://www.datacash.com/Transaction.html
              https://www.datacash.com/Transaction.html
              http://datacash.com/Transaction.html
              https://datacash.com/Transaction.html
              

              这些 URL 不是完全限定的:

              datacash.com
              datacash.com/
              datacash.com/Transaction.html
              www.datacash.com
              www.datacash.com/
              www.datacash.com/Transaction.html
              http://datacash.com
              https://datacash.com
              http://www.datacash.com
              https://www.datacash.com
              

              【讨论】:

                猜你喜欢
                • 2010-09-12
                • 2019-10-09
                • 2018-05-11
                • 2018-04-18
                • 2018-05-04
                • 1970-01-01
                • 2011-05-22
                • 1970-01-01
                • 2011-11-19
                相关资源
                最近更新 更多