似乎没有任何限制,你可以使用HTTP来做但是不能使用HTTPS。唯一的限制/区别在于连接被加密了。正如Eugene所提到的,这包括HTTPS无法被代理缓存。然而,有一些注意事项:
如果您开始在原本使用HTTP的网站上使用HTTPS,则可能会出现问题,其中包括HTTP内联内容,例如,如果您使用第三方HTTP服务或跨域内容:
在这种情况下,许多浏览器将禁用HTTPS页面内部的“不安全”HTTP内容!对于用户来说,很难关闭它(特别是在Firefox中)。
唯一可靠的解决方法是使用协议相对URL。因此,不要使用以下方式:
<script src="http://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
如果你的网站在HTTPS页面上显示不完整,你只需要使用
<script src="//maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
该方法将在 HTTP 页面上作为 HTTP 运行,在 HTTPS 页面上作为 HTTPS 运行,从而解决了问题。
当然,缺点是它会对大量网络流量进行无用的加密,这些流量本来就不易受攻击,也不需要加密。这就是偏执式浏览器安全方法的代价(就像一年前,在这种情况下,FF 没有任何警告,我完全满意。世界改变了……)
当然,另一个注意点是,如果您的域没有由受信任的 CA 权威签署的 SSL 证书,那么如果您的用户使用 HTTPS,则他们必须通过可怕的 4-5 步骤来接受证书。将普通用户(不了解问题)置于这种情况下几乎是不可能和不专业的。 在这种情况下,您将不得不购买证书。 由于这个原因,许多时候你最终使用 HTTP 而不是 HTTPS。因此,如果您负担不起购买证书的费用,浏览器的偏执症会强制您许多次使用不安全的 HTTP 协议而不是 HTTPS。再次强调,6-7 年前并不是这样。
如果您在同一个会话中同时使用 HTTP 和 HTTPS,则可能会遇到问题,因为有时它们将被视为不同的站点(即使其余部分的 URL 相同)。这可能出现在 cookie 的情况下-在某些情况下,它们不会在 HTTP 和 HTTPS 之间共享。此外,HTTP 认证-RFC2617 将不会在 HTTP 和 HTTPS 之间共享。然而,这种类型的身份验证在 Web 上现在非常罕见,可能是由于登录表单的缺乏自定义。
因此,如果您开始使用 HTTPS,最简单的方法是仅使用 HTTPS。
经过几年的在 HTTPS 上运行 HTTP 后,我不知道还有其他注意事项。
HTTPS的7大迷思 - 注意浏览器中处理HTTPS缓存的评论。不过这篇文章是2011年的,浏览器可能已经有所改变。
代理服务器能否缓存SSL GET请求?如果不能,响应体加密是否足够?
虽然WebSocket协议本身不知道代理服务器和防火墙,但它具有与HTTP兼容的握手,以便HTTP服务器可以与WebSocket网关或服务器共享其默认的HTTP和HTTPS端口(80和443)。 WebSocket协议定义了ws://和wss://前缀,分别表示WebSocket和WebSocket安全连接。这两种方案都使用HTTP升级机制来升级到WebSocket协议。