当浏览器建立 HTTPS 连接时,初次请求页面会花费少许时间,而随后的页面刷新耗时则微乎其微。HTTPS 网站加载缓慢有几个原因,这里也给出相应的解决方案。
在 SSL 握手过程中,需要几次 TCP 层的往返才能建立 HTTPS 连接,且这一过程在握手期间会产生一些额外的字节开销。
OCSP 与 CRL 可能是拖慢网站加载时间的一个因素,因为它们的性能通常未经优化。CA 响应一次 OCSP 请求大约需要 300 毫秒(ms),这意味着网站在建立连接时会额外耗费约三分之一秒。甚至多数 CA 尚未为 CRL 和 OCSP 服务器启用 IPv6 支持。
过去,部分 CA 曾试图取消完整的验证流程,但这会让 SSL 陷入麻烦——如果缺失完整的验证,可靠性就会大打折扣。
另一个原因是,SSL 证书会携带若干张中间证书,这也会增加初始握手期间需要交换的数据量。
除此之外,所使用硬件与软件的水平、静态内容占比、会话长度以及缓存行为,也都会影响 SSL 的性能表现。
事实与优化建议
网站所有者可以借助 SPDY——这是由 Google 开发的一种开放网络协议,能够缩短网页加载时间。
通过压缩文本内容,可以降低 CPU 资源的消耗;你也可以升级处理器,使其更轻松地支撑数据加密任务。
随着技术演进与现代服务器的普及,SSL 的开销已被大幅降低。许多证书颁发机构也在努力优化 CRL 与 OCSP 的响应时间,将其压缩到 100 毫秒(ms)甚至更低。
另一个办法是缩短 SSL 证书的中间证书链,因为它会占用额外的字节与时间。