方案相对 URL

Scheme relative URL

关于 scheme 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吗?

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

如果服务器只支持 HTTP,那通常意味着它根本没有 HTTPS。在这种情况下,HTTPS 请求将简单地失败,浏览器将显示 "couldn't establish a secure connection/couldn't connect to server".

行的错误消息

我从 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 />