1. 协议基础
- HTTP(HyperText Transfer Protocol):运行在 TCP 之上,是明文传输的协议。
- HTTPS(HTTP Secure) :在 HTTP 和 TCP 之间加了一层 SSL/TLS 加密层,实现加密传输。
面试加分点:可以提到 HTTPS = HTTP + SSL/TLS。
2. 数据安全性
- HTTP :所有数据(包括 URL、请求头、请求体、Cookie 等)都是明文传输,容易被中间人窃听、篡改或伪造。
- HTTPS :通过 对称加密 + 非对称加密 + 数字证书 保证:
- 机密性(Confidentiality):数据加密,无法被窃听;
- 完整性(Integrity):防止数据被篡改;
- 身份认证(Authentication):通过 CA 证书验证服务器身份,防止钓鱼。
面试加分点:可简要说明 TLS 握手过程(ClientHello → ServerHello → 证书交换 → 密钥协商 → 加密通信)。
3. 端口不同
- HTTP 默认使用 80 端口;
- HTTPS 默认使用 443 端口。
4. 性能开销
- HTTPS 因为需要进行加密/解密和 TLS 握手,会带来一定的性能开销(如额外的 RTT 延迟);
- 但现代优化技术(如 TLS 1.3、会话复用、0-RTT)已大幅降低这一影响。
面试加分点:可提一下 HTTP/2 通常只在 HTTPS 下启用,反而能提升整体性能(多路复用、头部压缩等)。
5. SEO 与浏览器支持
- 搜索引擎(如 Google)优先索引 HTTPS 网站;
- 现代浏览器对 HTTP 网站标记为"不安全",影响用户体验和信任度;
- 很多新 Web API(如 Geolocation、Service Worker、Web Push)仅在 HTTPS 下可用。
总结一句话回答(适合开场):
"HTTP 是明文传输的协议,而 HTTPS 在 HTTP 基础上加入了 SSL/TLS 加密层,保障了通信的安全性、完整性和身份认证。"
如果你是前端开发者,还可以补充:
- 在开发中应始终使用 HTTPS,尤其是在处理用户敏感信息(登录、支付等)时;
- 使用 HSTS(HTTP Strict Transport Security)头强制浏览器使用 HTTPS;
- 注意混合内容(Mixed Content)问题:HTTPS 页面中加载 HTTP 资源会被浏览器阻止。