29

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

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

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

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

4

8 回答 8

41

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

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

  1. href="foo/bar.html"是相对引用,特别是相对路径引用
  2. href="/foo/bar.html"是具有绝对路径的相对引用
  3. href="http://example.com/foo/bar.html"是一个绝对 URI
  4. href="//example.com/foo/bar.html"网络路径参考

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

于 2013-07-01T14:37:20.563 回答
4

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

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

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

于 2013-07-01T14:34:56.743 回答
2

我喜欢这里的 W3 描述:

URL 是一个绝对 URL,如果解析它会导致相同的输出,而不管它是相对于什么解析的,并且该输出不是失败的。

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

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

于 2013-07-01T14:39:41.893 回答
2

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

于 2015-11-15T00:33:06.097 回答
1

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

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

因此,#2 不是绝对 URI

于 2013-07-01T14:33:57.747 回答
1

我相信(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 规范不会。”

于 2013-07-01T14:33:59.387 回答
1

只有#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/

于 2013-07-01T14:41:06.003 回答
-1

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

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
于 2018-05-18T20:55:12.563 回答