HTTPS是HTTP的encryption版本,现在,encryption所有networkingstream量已经成为一种常见的做法,不仅是敏感的stream量。
除了需要购买昂贵的证书并依赖于第三方authentication机构之外,HTTPS的缺点是增加了CPU负载(用于实际encryption)和带宽消耗(用于添加协议协商)。
这种开销不仅是服务器端的问题,而且客户端感受到的延迟也更高。
CPU负载,带宽和延迟方面的实际开销是多less?
什么是最先进的技术(在软件,硬件和最佳实践),以减less这种开销?
价格 :有很多CA和经销商提供良好支持的SSL证书,甚至可以在妈妈的配方网站上买得起,更不用说用于商业用途了。 除了一些免费的啤酒之外,其他的啤酒还是比较便宜的。 所以没有问题。
通过切换到HTTPS可延长延迟 :初始SSL握手在连接build立之前需要额外的两次往返,而不是build立到普通未encryptionHTTP端口的TCP连接所需的一次往返。 如此有效,在用户收到第一个数据之前需要三倍的时间。

带宽增加 :由于协议的原因,使用的带宽将略微增加,因为头部大小会增加若干字节,由于成帧开销,有效负载将减less,并且一些密码也将使用填充。 假设一个1500字节数据包大小的公共MTU; HTTPS协议开销将仍然留下至less1400个字节的有效载荷数据量,因此带宽增加最多6-7%。
CPU负载 :计算量最大的部分是公钥交换,之后使用相对高效的对称密码。 大多数报价表明,现代商品硬件不需要SSL卸载卡来处理这种开销。
在今年1月份(2010年),Gmail切换为默认使用HTTPS。 之前它已经作为一个选项被引入,但是现在我们所有的用户一直使用HTTPS来保护他们的浏览器和Google之间的电子邮件。 为了做到这一点,我们不得不部署额外的机器,并没有特殊的硬件。 在我们的产品前端机器上,SSL / TLS占CPU负载的不到1%,每个连接的内存less于10 KB,networking开销less于2%。 许多人认为SSL / TLS需要很多CPU时间,我们希望前面的数字(首次公开)有助于消除这一点。
如果你现在停止阅读,你只需要记住一件事情:SSL / TLS在计算上不再昂贵。 – 亚当·兰利(Google)
Ilya Grigorik的高性能浏览器networking第4章是一个很好的资源
总之,除了build立新连接的延迟之外,开销可以忽略不计。
什么是最好的,这取决于你的需求…当你也需要SSL支持时,使用CDN可能会变得更加昂贵。