生活在叙利亚,当一个(Facebook、G+、Twitter等)插件在90%的网络上不起作用时,我感到非常不高兴。
问题是,这些(社交)网站在叙利亚不受欢迎(政府决定),但仍然可以完美地使用https。然而,由于他们的插件使用相对协议,并且大多数网站都使用http,因此这些插件最终会尝试(但失败)使用http加载。
问题是:如果可以使用https,为什么会使用相关协议,使用https并安全地传输用户的数据不是总是更好吗?
我不认为大型网站关心https开销,那么我对整个事情缺少什么呢?
如果您想在300ms内得到响应,我发现不使用SSL(HTTPS)的唯一原因是性能。
SSL握手可能需要几次往返时间,有时可能会从同一地区的几毫秒(比如美国东部的客户端和服务器)增加到600毫秒或更长时间。我在南美洲,所以有时在美国的服务器可能需要更多。
即使序列图看起来很简单,TCP也有一个初始拥塞窗口,这使得协议至少需要一个RTT(往返时间),服务器才能向客户端发送完整的证书。除了更改此初始拥塞窗口(cwnd)的服务器。
此外,SSL协议更为复杂,可能会出现需要额外RTT的"更改密码规范消息"。
SSL握手之后,服务器和客户端将使用对称密钥进行加密和解密,从而完成额外的工作。但根据我的经验,这并不重要(可能占CPU总利用率的5%)。
我的评论对web服务很有用。现在,如果我们谈论网站,我会用HTTPS做所有事情。
当我们查看https squence图时http://blog.expressionsoftware.com/2011/02/https-sequence-diagram.html
我们看到,只有客户端的第一个请求(握手步骤)才是开销。
所以我同意你的看法,使用https总是更好的。。。
也许缺少的是你还是不想相信人们懒惰,不在乎质量:)
这个也可以读。。。http://www.codinghorror.com/blog/2012/02/should-all-web-traffic-be-encrypted.html