上有很多关于方案相对URL的问题,但我不明白在这些情况下会发生什么:
1)我在HTTPS上点击href="//example.com/"
(example.com 没有SSL(它是HTTP),所以浏览器会尝试打开HTTPS://example.com/
(因为它想要匹配当前方案),如果没有HTTPS方案,它会打开HTTP://example.com/
?
2)反之亦然,从HTTP到HTTPS,当目标//example.com/
只有HTTPS时。如果目标没有HTTP,浏览器会打开HTTPS吗?
浏览器将尝试使用与当前相同的方案打开URL;如果它当前在HTTPS上,它将使用HTTPS请求URL,反之亦然。如果目标服务器不支持该方案,它只会失败。对于仅支持 HTTPS 的服务器,这通常意味着它强制执行 HTTPS;如果您向该服务器进行HTTP查询,它通常只是重定向到同一页面的HTTPS版本。不过,这完全取决于服务器。
如果服务器只支持HTTP,这通常意味着它根本没有HTTPS。在这种情况下,HTTPS请求将失败,浏览器将显示一条错误消息,内容为"无法建立安全连接/无法连接到服务器"。
我已经找到了如何做到这一点的方法,并从有关如何链接到不同端口的答案中获得了一些灵感,因为我需要同时执行这两项操作。方式是:
<a href="/vnc.html" onclick='javascript:event.target.port=6080;event.target.protocol="https:"'>VNC connection</a><br />