Scheme相对URL

时间:2016-02-08 09:06:14

标签: url browser protocol-relative

关于方案相对URL,有很多关于SO的问题,但我不明白在这些场景中会发生什么:

1)我在HTTPS上点击href="//example.com/"(example.com没有SSL(它是HTTP),因此浏览器会尝试打开HTTPS://example.com/(因为它想要匹配当前的方案)如果没有HTTPS方案,它将打开HTTP://example.com/

2)当目标//example.com/仅为HTTPS时,反之亦然从HTTP到HTTPS。如果目标目标没有HTTP,浏览器是否会打开HTTPS?

2 个答案:

答案 0 :(得分:1)

浏览器将尝试使用当前正在使用的相同方案打开网址;如果它当前在HTTPS上,它将使用HTTPS请求URL,反之亦然。 如果目标服务器不支持该方案,则它将失败。如果服务器仅支持HTTPS,则通常意味着它强制执行 HTTPS;如果您对该服务器进行HTTP查询,则经常只是重定向到同一页面的HTTPS版本。完全取决于服务器。

如果服务器仅支持HTTP,那通常意味着它根本没有HTTPS。在这种情况下,HTTPS请求只会失败,浏览器将显示一条错误消息:"无法建立安全连接/无法连接到服务器"。

答案 1 :(得分:0)

我从 the answer on how to link to different port 中找到了一些灵​​感,因为我需要同时做这件事。方法是:

<a href="/vnc.html" onclick='javascript:event.target.port=6080;event.target.protocol="https:"'>VNC connection</a><br />