题目
HTTP 和 HTTPS 的主要区别是什么?
信息
- 类型:问答
- 难度:⭐
考点
HTTP与HTTPS的区别,HTTPS的加密原理,HTTP的缺点
快速回答
HTTP 和 HTTPS 的核心区别在于安全性:
- HTTP:明文传输数据,无加密
- HTTPS:通过 SSL/TLS 加密传输数据
- HTTPS 需要数字证书验证服务器身份
- HTTP 默认端口 80,HTTPS 默认端口 443
一、核心区别对比
| 特性 | HTTP | HTTPS |
|---|---|---|
| 数据传输 | 明文传输 | 加密传输(SSL/TLS) |
| 安全性 | 易被窃听/篡改 | 防窃听/防篡改 |
| 端口号 | 80 | 443 |
| 证书要求 | 无需证书 | 需要CA颁发的数字证书 |
| 协议层 | 应用层协议 | HTTP + 加密层(在TCP之上) |
二、HTTPS 加密原理
工作流程:
- 客户端发起 HTTPS 请求(ClientHello)
- 服务器返回数字证书(包含公钥)
- 客户端验证证书有效性(CA机构签发)
- 生成会话密钥并用公钥加密传输
- 服务器用私钥解密获取会话密钥
- 双方使用会话密钥加密通信
加密技术组合:
- 非对称加密(RSA/ECC):初始密钥交换
- 对称加密(AES):后续数据传输
- 哈希算法(SHA-256):数据完整性校验
三、HTTP 的安全风险示例
<!-- 典型明文表单提交 -->
<form action='http://example.com/login' method='POST'>
用户名: <input type='text' name='user'>
密码: <input type='password' name='pass'>
</form>
<!-- 攻击者可通过抓包直接获取: -->
POST /login HTTP/1.1
Host: example.com
user=admin&pass=123456 <!-- 明文密码暴露! -->四、最佳实践
- 所有涉及敏感信息(登录、支付)的站点必须使用 HTTPS
- 使用 HSTS 头强制浏览器 HTTPS 访问:
Strict-Transport-Security: max-age=31536000 - 定期更新 TLS 版本(推荐 TLS 1.3)
- 使用 Let's Encrypt 获取免费证书
五、常见错误
- ❌ 在 HTTPS 页面混合加载 HTTP 资源(触发安全警告)
- ❌ 证书过期或域名不匹配(浏览器显示红色警告)
- ❌ 使用弱加密算法(如 RC4、SHA-1)
六、扩展知识
- SEO 影响:Google 优先索引 HTTPS 网站
- HTTP/2 依赖:主流浏览器要求 HTTPS 才支持 HTTP/2
- 性能优化:TLS 1.3 减少握手延迟,速度接近 HTTP