http 和https 的区别及性能差异

本文探讨了HTTP与HTTPS连接建立过程中的性能差异,特别是在SSL握手阶段的延迟与资源消耗。通过实际案例展示了HTTPS对服务器资源的实际影响,以及如何通过SSL终止代理来减轻这种负担。
http使用TCP 三次握手建立连接,客户端和服务器需要交换3个包,https除了 TCP 的三个包,还要加上 ssl握手需要的9个包,所以一共是12个包。http 建立连接,按照下面链接中针对 Computer Science House 的测试,是114毫秒;https建立连接,耗费436毫秒。ssl 部分花费322毫秒,包括网络延时和ssl 本身加解密的开销(服务器根据客户端的信息确定是否需要生成新的主密钥;服务器回复该主密钥,并返回给客户端一个用主密钥认证的信息;服务器向客户端请求数字签名和公开密钥)。
SSL handshake latency and HTTPS optimizations. :: semicomplete.com
当SSL 连接建立后,之后的加密方式就变成了3DES等对于 CPU 负荷较轻的对称加密方式。相对前面 SSL 建立连接时的非对称加密方式,对称加密方式对 CPU 的负荷基本可以忽略不记,所以问题就来了,如果频繁的重建 ssl 的session,对于服务器性能的影响将会是致命的,尽管打开https 保活可以缓解单个连接的性能问题,但是对于并发访问用户数极多的大型网站,基于负荷分担的独立的SSL termination proxy就显得必不可少了,Web 服务放在SSL termination proxy之后。SSL termination proxy既可以是基于硬件的,譬如F5;也可以是基于软件的,譬如维基百科用到的就是  Nginx

那采用 https 后,到底会多用多少服务器资源,2010年1月 Gmail切换到完全使用 https, 前端处理 SSL 机器的CPU 负荷增加不超过1%,每个连接的内存消耗少于20KB,网络流量增加少于2%。由于 Gmail 应该是使用N台服务器分布式处理,所以CPU 负荷的数据并不具有太多的参考意义,每个连接内存消耗和网络流量数据有参考意义。这篇文章中还列出了单核每秒大概处理1500次握手(针对1024-bit 的 RSA),这个数据很有参考意义,具体信息来源的英文网址: ImperialViolet
增量更新原始快照是两种垃圾收集器的实现方式,它们之间的主要差别在于: 1. 完成方式不同:增量更新是在应用程序运行时对堆进行部分标记清理,并且需要通过特定的算法来控制垃圾收集器应用程序的交互;而原始快照是在垃圾收集器暂停应用程序时对整个堆进行标记清理。 2. 实现复杂度不同:增量更新需要实现一些特殊的算法,以便在应用程序运行时对堆进行标记清理,这增加了垃圾收集器的实现复杂度;而原始快照相对于增量更新来说实现更简单、更可靠。 在性能方面,增量更新原始快照也存在一些差异,具体表现如下: 1. 延迟:增量更新可以在应用程序运行时完成部分垃圾收集工作,从而减少垃圾收集器的停顿时间,提高了响应性能;而原始快照需要暂停应用程序,进行全局标记清理,因此会有更长的停顿时间,对应用程序的响应性能会有一定影响。 2. 吞吐量:原始快照在标记清理时可以通过一些优化手段,如使用多线程并行处理,以提高垃圾收集的吞吐量;而增量更新的实现方式可能会对应用程序的吞吐量造成一定的影响。 综上所述,增量更新可以提高垃圾收集器的响应性能,但也会带来一些额外的开销实现复杂度;而原始快照可以更好地满足高吞吐量低延迟的要求,但需要在垃圾收集时暂停应用程序,对应用程序的响应性能会有一定影响。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值