有(至少)三种方式链接到的资源(完全合格的?):什么是绝对URL的定义
href="foo/bar.html"
href="/foo/bar.html"
href="http://example.com/foo/bar.html"
第一个是“相对网址”,没问题。但我已经看到(2)和(3)都被称为“绝对网址”。哪一个被正确地称为“绝对网址”,另一个的正确名称是什么?
(积分为相关标准或其他官方文件的参考资料。)
有(至少)三种方式链接到的资源(完全合格的?):什么是绝对URL的定义
href="foo/bar.html"
href="/foo/bar.html"
href="http://example.com/foo/bar.html"
第一个是“相对网址”,没问题。但我已经看到(2)和(3)都被称为“绝对网址”。哪一个被正确地称为“绝对网址”,另一个的正确名称是什么?
(积分为相关标准或其他官方文件的参考资料。)
RFC 3986定义了统一资源标识符。
以单斜杠字符开头的相对引用是
称为绝对路径引用。
不以斜杠字符开始的相对参考被称为相对路径参考。
href="foo/bar.html"
是一个相对的参考,特别是相对路径参考。href="/foo/bar.html"
是具有absolute pathhref="http://example.com/foo/bar.html"
一个相对引用为absolute URIhref="//example.com/foo/bar.html"
是网络路径参考以两个斜线开头的相对参考字符被称为网络路径引用;这种引用很少使用。
RFC 3986(URI通用语法)指定部分4.3。绝对URI以下规则:
absolute-URI = scheme ":" hier-part [ "?" query ]
因此,#2是不是一个绝对URI
我相信(2)也是relateive 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做出贡献,这就是为什么我要求提供权威来源的参考。 –
好点。下次我会考虑这一点。 – Brian
“绝对URL包含大量信息,这些信息可能已从基础文档检索的上下文中知道,包括方案,网络位置和URL路径的某些部分。”
http://tools.ietf.org/html/rfc1808
数(2)是绝对路径中,(3)是一个绝对URL。
我喜欢W3的描述找到here:
URL是一个绝对的URL,如果解决它导致相同的输出 不管它是什么相对于解决,那输出不 失败。
它没有提出方案,路径或任何其他的概念,但基本上只是说相同的输入总是带来相同的输出。你只能说关于#3。
虽然我不太在意技术,但如果你的宇宙是网站,那么#2仍然是绝对的。像//example.com/foo/bar.html
这样的东西是绝对的,如果你的宇宙是这个计划的话。我认为在这些情况下,“绝对”这个词从开发者的角度来看仍然是有意义的。
只有#3符合绝对URL的定义。 1 & 2是相对URL。
相对URL(在[RFC1808]中定义)不包含任何协议或机器信息,其路径通常指与当前文档位于同一机器上的HTML文档。相对URL可能包含相对路径组件(“..”表示父级位置),可能是片段URL。 来源:http://www.w3.org/TR/WD-html40-970708/htmlweb.html
如果解析URL,它会得到相同的输出,而不管它解析的是什么,并且该输出不是失败。 来源:http://www.w3.org/TR/url/
我听说#2这个词是“根相对”。我认为这是一个有用的定义,因为它的含义在措辞中很清楚,并且容易将其与#1和#3区分开来。
对于#4,同意他们很少使用,但我认为这对他们有很好的用处。同一路径上的HTTP和HTTPS托管的任何内容都将受益于此 - 避免在不需要时使用HTTPS的开销,并将其用于安全页面以避免浏览器警告。托管在CDN上的脚本就是一个很好的例子:([see this post](http://stackoverflow.com/questions/3622598/https-and-external-cdn-hosted-files/3622615#3622615)) –
@JoeEnos我同意和你;这是RFC的直接引用。 –
有趣的是,仅仅4年后,CDN脚本参考文献中的“网络路径引用”就已经存在。 –