HTTPS中哪些HTTP功能不同?

Ada*_*tan 7 https http

维基百科将HTTP(S)或S-HTTP定义为HTTP上的安全层:

从技术上讲,它本身并不是一种协议; 相反,它是在SSL/TLS协议之上简单地分层超文本传输​​协议(HTTP)的结果,从而将SSL/TLS的安全功能添加到标准HTTP通信.

从逻辑上讲,它意味着HTTP中的每个功能和方面(例如方法状态代码)都存在于HTTPS中.

将现有HTTP REST接口切换到HTTPS时,我是否应该注意任何警告或差异?

TMS*_*TMS 7

对于您可以使用HTTP而不是HTTPS执行的操作似乎没有任何限制.唯一的限制/差异与连接加密的事实有关.正如Eugene所提到的,这包括HTTPS不能代理缓存的事实.但是有一些警告:

HTTPS页面内的HTTP内联内容

如果您开始对最初使用HTTP的站点使用HTTPS,则HTTP内联内容可能会出现问题,例如,如果您使用第三方HTTP服务或跨域内容:

  • 脚本:谷歌地图API
  • iframes:其他网站,脸书,谷歌广告,......
  • 图像,静态谷歌地图,......

在这种情况下,许多浏览器将禁用HTTPS页面中的"不安全"HTTP内容!对于用户来说,很难将其关闭(特别是在Firefox中).

唯一可靠的方法是使用协议相对URL.所以,而不是:

<script src="http://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
Run Code Online (Sandbox Code Playgroud)

哪个会破坏HTTPS页面,你只需要使用

<script src="//maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
Run Code Online (Sandbox Code Playgroud)

它将在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几年后,我不知道任何其他警告.


归档时间:

查看次数:

372 次

最近记录:

11 年,9 月 前