http和https在性能上有什么主要的区别吗?我似乎记得读到过HTTPS的速度是HTTP的五分之一。这对当前的web服务器/浏览器有效吗?如果有,是否有相关白皮书支持?
当前回答
HTTPS确实会影响页面速度…
上面的引用揭示了许多人在网站安全和速度方面的愚蠢。HTTPS / SSL服务器握手会在进行互联网连接时造成初始停顿。在访问者的浏览器屏幕上开始呈现任何内容之前会有一个缓慢的延迟。这个延迟是用Time-to-First-Byte信息来衡量的。
HTTPS握手开销出现在时间到第一字节信息(TTFB)中。常见的TTFB范围从低于100毫秒(最好的情况)到超过1.5秒(最坏的情况)。但是,当然,使用HTTPS时,情况要差500毫秒。
无线3G连接的往返时间可以达到500毫秒甚至更多。额外的行程会使延迟加倍,达到1秒或更长时间。这对手机性能有很大的负面影响。非常坏的消息。
我的建议是,如果你不交换敏感数据,那么你根本不需要SSL,但如果你确实喜欢电子商务网站,那么你可以在某些交换敏感数据的页面上启用HTTPS,比如登录和结账。
来源:Pagepipe
其他回答
因为我正在为我的项目调查同样的问题,我发现了这些幻灯片。年长但有趣:
http://www.cs.nyu.edu/artg/research/comparison/comparison_slides/sld001.htm
考虑到SSL需要一个非sll HTTP不需要的额外加密步骤,这几乎肯定是正确的。
要真正理解HTTPS如何增加延迟,您必须了解HTTPS连接是如何建立的。这是一个很好的图表。关键在于,客户端不是在2个“腿”(一个往返,你发送一个请求,服务器发送一个响应)后才获得数据,而是至少要到4个“腿”(2个往返)后才能获得数据。因此,如果一个数据包在客户端和服务器之间移动需要100毫秒,那么您的第一个HTTPS请求至少需要500毫秒。
当然,这可以通过重新使用HTTPS连接来缓解(浏览器应该这样做),但它确实解释了加载HTTPS网站时的部分初始停滞。
我做了一个小实验,从flickr (233 kb)上获得了16%的时差:
http://farm8.staticflickr.com/7405/13368635263_d792fc1189_b.jpg
https://farm8.staticflickr.com/7405/13368635263_d792fc1189_b.jpg
当然,这些数字取决于许多因素,如计算机性能、连接速度、服务器负载、路径上的QoS(从浏览器到服务器的特定网络路径),但它显示了一个大致的想法:HTTPS比HTTP慢,因为它需要更多的操作来完成(SSL握手和编码/解码数据)。
HTTPS有加密/解密的开销,所以它总是会稍微慢一点。SSL终止是非常消耗CPU的。如果您有卸载SSL的设备,则延迟的差异可能几乎不明显,这取决于服务器所处的负载。
推荐文章
- 确定记录是否存在的最快方法
- 在Cygwin中对HTTPS URL运行wget时,如何修复证书错误?
- 阅读GHC核心
- Python: List vs Dict用于查找表
- 为什么MATLAB的矩阵乘法运算这么快?
- for循环和for-each循环在性能上有区别吗?
- 就性能而言,使用std::memcpy()还是std::copy()更好?
- 什么时候我应该(不)想要在我的代码中使用熊猫apply() ?
- 如何加速gwt编译器?
- MySQL OR与IN性能
- 应该……接住环内还是环外?
- 哪个更快/最好?SELECT *或SELECT columnn1, colum2, column3等
- 什么是HTTP“主机”报头?
- 加快R中的循环操作
- INT和VARCHAR主键之间有真正的性能差异吗?