至少有三种方法可以链接到资源:
href="foo/bar.html"
href="/foo/bar.html"
href="http://example.com/foo/bar.html"
第一种是“相对URL”,没问题。但我看到(2)和(3)都被称为“绝对URL”。哪个才是正确的“绝对URL”,另一个的正确名称是什么?
(如有相关标准或官方文档的参考资料,可获得额外积分。)
至少有三种方法可以链接到资源:
href="foo/bar.html"
href="/foo/bar.html"
href="http://example.com/foo/bar.html"
第一种是“相对URL”,没问题。但我看到(2)和(3)都被称为“绝对URL”。哪个才是正确的“绝对URL”,另一个的正确名称是什么?
(如有相关标准或官方文档的参考资料,可获得额外积分。)
绝对URL包含大量信息,这些信息可能已经从基础文档的检索上下文中知道,包括方案、网络位置和URL路径的部分。
https://www.rfc-editor.org/rfc/rfc1808
数字(2)是绝对路径,数字(3)是绝对URL。
该说明未涉及方案、路径或其他概念,但基本上表明相同的输入始终产生相同的输出。从开发者的角度来看,即使在您的世界是网站时, #2 仍然是绝对的。例如,如果解析一个URL,无论相对于什么解析,结果总是一致且不会失败,则该URL为绝对URL。
//example.com/foo/bar.html
是方案时,它也是绝对的。我认为在这些情况下,“绝对”这个词仍然有意义。我听说 #2 的术语是 "根相对路径"。我认为这是一个有用的定义,因为它的意思在措辞上很清晰,并且很容易区分于 #1 和 #3。
RFC 3986(URI通用语法)在第4.3节绝对URI中规定以下规则:
absolute-URI = scheme ":" hier-part [ "?" query ]
因此,#2不是绝对URI。