需要方案相对网址澄清

时间:2014-08-20 10:22:06

标签: http url web https protocols

我一直在读关于网址的内容。绝对,方案相对,根相对,位置相对 我仍然不明白这两者之间的区别:

//domain.com/index.html           - scheme relative
domain.com/index.html             - ?

问题1:
如果我错了,请纠正我//domain.com/index.html将解析为绝对网址:

http://domain.com/index.html
https://domain.com/index.html
ftp://domain.com/index.html
file://domain.com/index.html    -- if in email

浏览器的行为方式不同:ie6不支持,ie7,8将获取两次数据(http https)。

问题2:
domain.com/index.html将如何解决?与Q1中的方案相对网址相同?或者是别的什么?

问题3:
这些网址之间有什么区别,它是什么?为什么?

//www.domain.com/index.html
www.domain.com/index.html

问题4:
//www.domain.com/index.html将如何解决?

问题5:
www.domain.com/index.html将如何解决?

2 个答案:

答案 0 :(得分:3)

查看这些网址非常容易,将您的人类知识应用于他们可能的意思,而不是像网络浏览器这样的软件实施的更简单的规则。

最简单的URL类型(或者更准确的URI,因为某些方案不代表位置,只有标识符)是绝对的;它从一个方案开始,然后是冒号,并且不需要上下文来解决它。例子:

  • http://example.com
  • https://www.example.com/foo/bar.baz
  • http://127.0.0.1:8001
  • mailto:someone@example.com
  • data:text/plain,test
  • urn:example

然后是位置相对的URL;也就是说,任何没有方案的东西,没有前导斜杠。这些在当前上下文中的斜杠之后替换所有内容,但保留其余部分。如果当前上下文为http://example.com/foo/bar.baz,您可以使用如下相对URL:

  • bob.baz - > http://example.com/foo/bob.baz
  • thing/widget.gizmo - > http://example.com/foo/thing/widget.gizmo
  • example.com/page - > http://example.com/foo/example.com/page

请注意,最后一个示例乍一看看起来像一个域名,但实际上与所有其他相对URL完全相同。

具有前导斜杠的根相对URL类似,但不是在最后一个斜杠之后删除,而是在第一个之后删除。鉴于相同的上下文,前面的示例变为:

  • /bob.baz - > http://example.com/bob.baz
  • /thing/widget.gizmo - > http://example.com/thing/widget.gizmo
  • /example.com/page - > http://example.com/example.com/page

根相对URL也可以包含冒号,因为前导斜杠不能是方案前缀的一部分:

  • /foo:bar - > http://example.com/foo:bar
  • /urn:example - > http://example.com/urn:example

最后,有方案相对的URL,两个前导斜杠。它们在原始的双斜杠后替换所有内容,因此只保留方案:

  • 如果上下文为http://example.com/foo/bar,则//example.org/bob表示http://example.org/bob
  • 如果上下文为https://example.com/foo/bar,则//example.org/bob表示https://example.org/bob
  • 如果上下文为http://example.com,则//foo.bar表示http://foo.bar

请注意,最后一个示例对我们来说看起来不像是域名,但它仍然遵循相同的规则。解析任何相关表单时,不会考虑URL是否实际上有用

"等公约以www。"开头。和#34;以.com"结束。不能依赖,并且不用于确定URL是否相对,所以你需要做的就是回答所有问题,遵循这套简单的规则:

  1. 如果有两个前导斜杠,则为方案相对
  2. 如果有一个前导斜杠,则为root relative
  3. 如果没有前导斜杠,但有冒号,则假设它是绝对URI
  4. 如果没有前导斜杠,且没有冒号,则为位置相对

答案 1 :(得分:0)

他们非常不同。第二个是对路径“domain.com/index.html”的相对引用。

WRT“domain.com”与“www.domain.com”:这些只是不同的主机名(或第二个版本中的路径名)