HTTP 是明文传输的超文本传输协议,数据在中间节点可以被直接读取和篡改,存在窃听、篡改和伪造三种风险。HTTPS 在 HTTP 与 TCP 之间加入 TLS(或早期的 SSL)层,通过非对称加密协商会话密钥、对称加密传输内容、数字证书验证服务端身份,同时解决机密性、完整性与身份认证。
对比维度要答全:端口(80 对 443)、是否加密、证书成本、连接建立开销(HTTPS 多一次 TLS 握手)。延伸考点是 TLS 握手过程与 HTTPS 对性能的影响,可结合 HTTP/2 默认要求 HTTPS、以及搜索引擎排名偏向 HTTPS 来谈实践价值。
// HTTPS 建立连接的过程示意 const steps = [ 'TCP 三次握手,先建立可靠连接', 'ClientHello:客户端发送随机数与支持的加密套件', 'ServerHello:服务端返回随机数、选定的套件与数字证书', '客户端校验证书,生成预主密钥并用公钥加密发回', '双方算出会话密钥,之后内容改用对称加密传输' ]; steps.forEach((s, i) => console.log(i + 1 + '. ' + s)); console.log('结论:HTTPS = HTTP + TLS,明文风险被全部解决');