专栏首页草根博客站长有话说HTTPS 要比 HTTP 多用多少服务器资源?
原创

HTTPS 要比 HTTP 多用多少服务器资源?

HTTP 访问,用户只需要完成 TCP 三次握手,建立 TCP 连接就能够直接发送 HTTP 请求,获取应用层数据。而 HTTPS=HTTP+SSL,也就是说 HTTPS 比 HTTP 多消耗的服务器资源主要就是看 SSL/TLS 消耗了多少服务器资源。

△SSL/TLS 握手协议(图片来源于网络,侵删)

增加了 SSL 的握手阶段,必然会带来的是网站延时的增加,一次完整的握手至少增加延时 2* RTT,利用会话缓存从而复用连接,延时也至少 1* RTT*。

除数据传输之外,HTTPS 主要是对对称加解密、非对称加解密

  • 对称加密常见的有 AES-CBC、DES、3DES、AES-GCM 等,相同的密钥可以用于信息的加密和解密,掌握密钥才能获取信息,能够防止信息窃听,通信方式是 1 对 1;
  • 非对称加密即常见的 RSA 算法,还包括 ECC、DH 等算法。对服务器资源消耗最厉害的是 SSL 连接握手阶段的非对称解密。

当然,整体来讲,消耗并没有想象的那么大,更可以通过各种方法来优化 HTTPS。

  • CDN 接入:CDN 节点通过和业务服务器维持长连接、会话复用和链路质量优化等可控方法,极大减少接入延时。这里推荐自家又拍云,对每个用户开放所有节点,共有 300 余个节点,而 RTT 的特点是就节点越近延时越小。
  • 硬件加速:采用专用的 SSL 解密卡,能够具有更高的 HTTPS 接入能力且不影响业务程序的。
  • 升级成 HTTP2:HTTP2 利用 TLS/SSL 带来的优势,通过修改协议的方法来提升 HTTPS 的性能,提高下载速度等。前面提到的又拍云在 HTTPS 协议的基础上已实现全平台支持 HTTP2。
  • 开启 TLS 1.3:相比 TLS 1.2 ,TLS 1.3 的握手时间会减半。这意味着访问一个移动端网站,使用 TLS 1.3 协议,可能会减少将近 100ms 的时间。另外 TLS 1.3 的开启,也能让网站变得更安全。

其实还在纠结 HTTPS 的站长们完全没有必要再纠结下去的,早上 HTTPS 早省心,现在浏览器对 HTTPS 的强制需求是越来越强了,甚至明月现在都不接受 HTTP 站点友链了都!尽快上 HTTPS,尽快开始 HTTPS 的外链建设才是最好的!

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 教科书级的网站用户体验指南

    用户体验(User Experience,简称 UE/UX)是用户在使用产品过程中建立起来的一种纯主观感受。 但是对于一个界定明确的用户群体来讲,其用户体验的共...

    明月登楼
  • 分享两个著名的 WordPress 本地缓存插件

    虽然明月已经放弃使用 WordPress 本地缓存插件很久了(可参考【我为什么放弃了缓存插件?】),但是考虑到很多新手站长们依然在使用着虚拟主机服务器,所以今天...

    明月登楼
  • 降低 CDN 付费 HTTPS 流量消耗实践总结

    从明月下定决心开始使用又拍云 CDN 的时候,就有一个问题困扰着我,那就是 CDN 流量消耗是越来越大,最夸张的时候一天流量消耗达到了惊人的 2G 多了,这对于...

    明月登楼
  • HTTPS 要比 HTTP 多用多少服务器资源?

    HTTP 访问,用户只需要完成 TCP 三次握手,建立 TCP 连接就能够直接发送 HTTP 请求,获取应用层数据。而 HTTPS=HTTP+SSL,也就是说 ...

    明月云服务
  • Kali Linux Web渗透测试手册(第二版) - 2.5 - 识别HTTPS加密参数

    thr0cyte,Gr33k,花花,MrTools,R1ght0us,7089bAt,

    用户1631416
  • java一些常用并发工具示例

    最近把《java并发编程实战》-Java Consurrency in Practice 重温了一遍,把书中提到的一些常用工具记录于此: 一、闭锁(门栓)- C...

    菩提树下的杨过
  • ThreadPoolExecutor源码分析(一):重要的成员变量

    ThreadPoolExecutor部分重要成员变量: 1、AtomicInteger ctl 2、workQueue 3、corePoolSize 4...

    100000860378
  • 3.linux多线程编程。

    也是最近看YOLOV3的源码的时候接触到这里,demo()函数里是用到多线程编程的。我一开始是把线程这里是略掉的,后来发现实际上检测的函数就是通过线程来组织的,...

    和蔼的zhxing
  • Java并发-27.并发工具类-Semaphore

    信号量Semaphore用来控制同时访问特定资源的线程数量,通过协调各个线程,保证公平合理的使用公共资源。

    悠扬前奏
  • 比特币跳崖式暴跌,来看黑客导演的一场烧脑大片(全解读)

    想着今天早上起来,应该是关于3.8妇女节的各种文案刷屏,却又一次被比特币抢了头条,比特币一夜暴跌10%,再次跌破10000美元,而几乎在昨天深夜同一时间全球第二...

    FB客服

扫码关注云+社区

领取腾讯云代金券