前言
HTTPS相比于HTTP更加的安全,当然效率也会略低一些,我们既然选择了安全,就要接受性能方面的损失,所以我们在使用HTTPS的同时,也要不断进行性能优化处理。
网络请求,其实真正请求的时间非常短,大部分时间都是在建立连接,等待响应等延迟状态
性能优化也是可以从这几个维度进行处理
协议优化
- TLS1.2 升级到TLS1.3 可以减少一次握手请求 (false start 抢跑 提前发送数据),握手过程被大大简化,提高50%的效率
- 密钥交换也可以实现false start效果,减少请求
证书优化
- 证书验证、证书传输也是性能优化的点,ECDSA是椭圆曲线算法,位数小,体积少,运算量低,加密效果更好,传输更快,验证更快。
- OCSP让服务器预先访问证书状态,客户端不必再获取
会话复用
- 跳过证书验证、密钥交换等过程 (可能会加重服务器负担,可以用session ticket 公钥加密 私钥解密即可 不需要存储)
- PSK 预共享密钥 减少TLS握手次数 提前发送数据(可能会被提前截获 解决办法 可以加个时间戳 限制第一次握手为一次性交互)
HTTP2特性