HTTPS和HTTP有哪些不同的特性?

7
维基百科定义HTTP(S)或S-HTTP为HTTP的一种安全层:(参见链接) 技术上来说,HTTPS并不是一个独立的协议;相反,它是简单地将SSL/TLS协议与超文本传输协议(HTTP)结合起来,以此将SSL/TLS的安全性能添加到标准HTTP通信中。
逻辑上来说,这意味着每个HTTP特性和方面(例如方法状态码)都存在于HTTPS中。
当将现有的HTTP REST接口切换到HTTPS时,我应该期待任何注意事项或差异吗?

1
收藏以供参考。 - ʰᵈˑ
3个回答

7

似乎没有任何限制,你可以使用HTTP来做但是不能使用HTTPS。唯一的限制/区别在于连接被加密了。正如Eugene所提到的,这包括HTTPS无法被代理缓存。然而,有一些注意事项:

HTTPS页面中的HTTP内联内容

如果您开始在原本使用HTTP的网站上使用HTTPS,则可能会出现问题,其中包括HTTP内联内容,例如,如果您使用第三方HTTP服务或跨域内容:

  • 脚本:谷歌地图API
  • iframe:其他网站,Facebook,Google广告等
  • 图片,静态谷歌地图等

在这种情况下,许多浏览器将禁用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 没有任何警告,我完全满意。世界改变了……)

如果您的域没有签名 SSL 证书

当然,另一个注意点是,如果您的域没有由受信任的 CA 权威签署的 SSL 证书,那么如果您的用户使用 HTTPS,则他们必须通过可怕的 4-5 步骤来接受证书。将普通用户(不了解问题)置于这种情况下几乎是不可能和不专业的。 在这种情况下,您将不得不购买证书。 由于这个原因,许多时候你最终使用 HTTP 而不是 HTTPS。因此,如果您负担不起购买证书的费用,浏览器的偏执症会强制您许多次使用不安全的 HTTP 协议而不是 HTTPS。再次强调,6-7 年前并不是这样。

混合使用 HTTP 和 HTTPS - cookie 和授权问题

如果您在同一个会话中同时使用 HTTP 和 HTTPS,则可能会遇到问题,因为有时它们将被视为不同的站点(即使其余部分的 URL 相同)。这可能出现在 cookie 的情况下-在某些情况下,它们不会在 HTTP 和 HTTPS 之间共享。此外,HTTP 认证-RFC2617 将不会在 HTTP 和 HTTPS 之间共享。然而,这种类型的身份验证在 Web 上现在非常罕见,可能是由于登录表单的缺乏自定义。

因此,如果您开始使用 HTTPS,最简单的方法是仅使用 HTTPS。


经过几年的在 HTTPS 上运行 HTTP 后,我不知道还有其他注意事项。


1

性能考虑


HTTPS客户端/浏览器缓存

HTTPS的7大迷思 - 注意浏览器中处理HTTPS缓存的评论。不过这篇文章是2011年的,浏览器可能已经有所改变。

Web浏览器是否会在HTTPS上缓存内容


为什么没有HTTPS代理缓存

代理服务器能否缓存SSL GET请求?如果不能,响应体加密是否足够?


通过HTTPS升级Websockets命令

虽然WebSocket协议本身不知道代理服务器和防火墙,但它具有与HTTP兼容的握手,以便HTTP服务器可以与WebSocket网关或服务器共享其默认的HTTP和HTTPS端口(80和443)。 WebSocket协议定义了ws://和wss://前缀,分别表示WebSocket和WebSocket安全连接。这两种方案都使用HTTP升级机制来升级到WebSocket协议。

http://en.wikipedia.org/wiki/WebSocket


-1
作为REST的编码人员,我认为在将HTTP REST切换到HTTPS时不会出现任何可能的注意事项。如果有的话,在普通的HTTP REST中也一定会存在。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接