http和https的区别
HTTP与HTTPS的核心区别
一、协议基础
-
HTTP(HyperText Transfer Protocol)
基于TCP/IP的应用层协议,以明文传输数据,无加密机制,端口默认80。 -
HTTPS(HyperText Transfer Protocol Secure)
= HTTP + SSL/TLS加密层,数据经加密后传输,端口默认443。
二、安全性对比
维度 | HTTP | HTTPS |
---|---|---|
数据加密 | 明文传输,可被中间人窃听或篡改 | 使用SSL/TLS加密,数据全程密文传输 |
身份验证 | 无服务器身份验证 | 需CA机构颁发证书,验证服务器真实性 |
防篡改能力 | 数据易被劫持修改(如广告注入) | 加密+数字签名保证数据完整性 |
攻击防护 | 易受中间人攻击、流量劫持 | 可防御窃听、重放攻击、钓鱼网站等 |
三、技术实现差异
-
加密过程
- HTTPS通过非对称加密(如RSA/ECC)建立安全通道,交换对称加密密钥(如AES-256)
- 后续通信使用对称加密提升效率,加密流程需经历TLS握手(约100ms额外延迟)。
-
证书机制
- HTTPS必须部署SSL证书(如DV、OV、EV证书),由CA机构验证域名所有权或企业身份。
- 浏览器会检查证书有效性(如过期/吊销),若异常则显示“不安全”警告。
-
性能影响
- HTTPS因加密计算增加约5-10%的CPU负载,但通过硬件加速(如SSL Offload)可优化。
- HTTP/2、HTTP/3协议仅支持HTTPS,实际性能反而可能优于传统HTTP。
四、应用场景选择
-
必须使用HTTPS的场景:
✅ 用户登录/支付页面 ✅ API接口传输敏感数据 ✅ 搜索引擎优化(SEO加权)
✅ 防止运营商劫持 ✅ 适配PWA等现代Web技术 -
仍可使用HTTP的场景:
⚠️ 内部测试环境 ⚠️ 静态资源缓存分发(需注意混合内容风险)
五、典型问题示例
-
混合内容(Mixed Content)
HTTPS页面内加载HTTP资源(如图片/JS),浏览器会部分屏蔽并警告安全性降低。 -
证书成本与维护
- 免费证书:Let's Encrypt(90天有效期,需自动续签)
- 商业证书:Symantec/DigiCert等(年费50−2000+,含保险赔付)
总结
HTTPS通过加密传输、身份认证和数据完整性校验,全面解决HTTP的安全缺陷。现代网站应强制启用HTTPS(如HSTS策略),同时利用HTTP/2、QUIC等协议提升性能,兼顾安全与效率