为什么握手过程会在加载数据之前发生
整个协商过程都发生在浏览器真正请求网页内容之前,这也是为什么证书过期、不支持的密码套件或网络问题导致握手变慢或失败时,即便服务器本身运行正常,网站也可能无法打开。浏览器提示"连接不安全"之类的警告,几乎总是握手阶段出了问题,而不是网页内容本身的问题。
一次握手中同时用到的公钥加密与对称加密
握手过程实际上用了两种不同的加密技术来完成两种不同的任务:先用速度较慢但安全性更高的非对称(公钥)加密,在不被窃听的前提下安全地交换初始密钥;然后用速度更快的对称加密,配合刚刚生成的会话密钥来处理实际的数据传输——因为对称加密处理普通网页会话中大量数据时效率要高得多。
常见问题
为什么TLS 1.3比TLS 1.2少了一次往返?
TLS 1.3简化了握手流程,让客户端一开始就直接提出具体的密钥交换方式,服务器可以一次性返回完成握手所需的全部信息,从而把原本需要两次往返的过程缩短为一次。
握手更快真的会让网页加载速度有明显区别吗?
会,尤其是在移动网络这类延迟较高的连接环境下——一次完整往返可能需要几十到几百毫秒不等,把握手从两次往返减少到一次(重新连接时甚至为零次),能够明显缩短安全页面开始加载所需的时间。