没有"http | https"的网址

top*_*r-j 77 url https http

我刚从一位同事那里了解到,在链接中省略URL的"http | https"部分会使该URL使用它所使用的页面所使用的任何方案.

例如,如果我的页面在http://www.example.com上访问,并且我有一个链接(注意前面的'//'):

<a href="//www.google.com">Google</a>
Run Code Online (Sandbox Code Playgroud)

该链接将转至http://www.google.com.

但是,如果我使用相同的链接访问https://www.example.com上的网页,则会转到https://www.google.com

我想在网上查找有关这方面的更多信息,但我很难想出一个好的搜索短语.如果我搜索"没有HTTP的URL",返回的页面是关于这种形式的网址:"www.example.com",这不是我正在寻找的.

你会称那个无方案的URL吗?无协议的URL?

这适用于所有浏览器吗?我在FF和IE 8中进行了测试,它在两者中均有效.这是标准的一部分,还是我应该测试更多的浏览器?

Mar*_*ska 68

协议相对网址.

您可能会在某些浏览器中收到异常的安全警告.

另请参阅Wikipedia协议相对URL以获得简要定义.

有一次,建议 ; 但是往前走,应该避免.另请参阅StackOverflow问题,为什么要使用协议相对URL?


Mat*_*ius 13

它被称为RFC3986第4.2节中定义的网络路径引用(称为scheme或缺少的部分protocol)

4.2相对参考

相对引用利用分层语法(第1.2.3节)来表示相对于另一个分层URI的名称空间的URI引用.

  relative-ref  = relative-part [ "?" query ] [ "#" fragment ]

  relative-part = "//" authority path-abempty
                / path-absolute
                / path-noscheme
                / path-empty
Run Code Online (Sandbox Code Playgroud)

相对引用所引用的URI(也称为目标URI)是通过应用第5节的参考分辨率算法获得的.

以两个斜杠字符开头的相对引用称为网络路径引用(强调我的); 这种参考很少使用.以单个斜杠字符开头的相对引用称为绝对路径引用.不以斜杠字符开头的相对引用称为相对路径引用.

包含冒号字符(例如,"this:that")的路径段不能用作相对路径引用的第一个段,因为它会被误认为是方案名称.这样的片段必须在点片段之前(例如,"./ this:that")以作出相对路径参考.