← 返回题目列表

HTTP 和 HTTPS 有什么区别?

高频 中等 第 13 / 32 题 更新于 2026/07/28
HTTPHTTPSTLS

简化版

HTTPS = HTTP + TLS/SSL。HTTP 是明文传输,能被窃听、篡改、冒充;HTTPS 在 HTTP 和 TCP 之间加了一层 TLS,提供三个保证:加密(防窃听)、完整性(防篡改)、身份认证(靠 CA 证书防冒充)。代价是需要证书、握手多一点开销、稍慢。端口也不同:HTTP 用 80,HTTPS 用 443

详细版

维度HTTPHTTPS
传输明文TLS 加密
端口80443
安全性可被窃听/篡改/冒充加密 + 完整性 + 身份认证
证书不需要需要 CA 签发的证书
性能略慢(多 TLS 握手)

HTTPS 解决 HTTP 的三大安全问题

  1. 窃听(被人偷看)→ 用加密解决;
  2. 篡改(被人改内容)→ 用完整性校验(摘要 + 签名)解决;
  3. 冒充(假冒服务器/中间人)→ 用数字证书 + CA 认证解决。

TLS 握手用非对称加密安全地协商出一个对称密钥,之后的数据用对称加密传输——兼顾安全和性能。

完整版教学

一、HTTP 明文有多危险

HTTP 数据全程明文,在传输路径上的任何一个节点(WiFi 热点、运营商、代理、网关)都能:

  • 窃听:直接看到你传的账号密码、隐私;
  • 篡改:改掉网页内容(比如给你注入广告、把下载链接换成木马);
  • 冒充:假装成目标网站骗你(中间人攻击 MITM)。

这就是为什么现在几乎所有网站都上了 HTTPS——HTTP 在公网上传敏感数据等于裸奔。

二、HTTPS 的三重保护对应三个威胁

理解 HTTPS 的关键是把它的三个能力和三个威胁一一对应:

  • 加密(对称 + 非对称) → 对抗窃听。别人抓到包也是密文,看不懂。
  • 完整性校验(消息认证码/摘要) → 对抗篡改。数据被改过,校验就会失败。
  • 数字证书 + CA → 对抗冒充。证书由权威 CA 签发,证明「你连的确实是这个网站」,防止中间人假冒。

只有三者齐全才算「安全」——光加密不认证,你可能加密地连到了一个假服务器。

三、为什么用「非对称 + 对称」混合加密

TLS 握手为什么不直接全程用非对称加密?因为:

  • 非对称加密(RSA/ECC)安全但慢:公钥加密、私钥解密,适合安全地传递少量数据,但性能差,不适合加密大量业务数据。
  • 对称加密(AES)快但有密钥分发难题:加解密用同一个密钥,快,但「怎么把这个密钥安全地告诉对方而不被中间人拿到」是难点。

HTTPS 的巧妙之处是结合两者:握手阶段用非对称加密安全地协商出一个对称密钥(会话密钥),之后的通信全用对称加密。既解决了密钥分发问题,又保证了传输性能。(TLS 握手的详细过程属于 HTTPS 专题,这里只讲和 HTTP 的区别。)

四、数字证书解决「公钥可信」问题

有个隐藏问题:非对称加密要用服务器的公钥,但你怎么知道拿到的公钥是真服务器的、不是中间人伪造的?

这就要靠数字证书:服务器的公钥由权威 CA(证书颁发机构) 签名背书,做成证书。浏览器内置了受信任的 CA 列表,能验证证书签名是否可信、域名是否匹配、是否过期。验证通过才信任这个公钥。这样中间人无法伪造一个被 CA 认可的证书,冒充就被挡住了。

五、HTTPS 的代价与优化

  • 握手开销:多了 TLS 握手(TLS 1.2 需 2-RTT,TLS 1.3 优化到 1-RTT,会话恢复可 0-RTT),首次连接稍慢;
  • 计算开销:加解密消耗 CPU,但现代硬件基本可忽略;
  • 成本:需要申请证书(现在有 Let’s Encrypt 等免费证书)。

综合看,HTTPS 的安全收益远大于性能代价,加上 HTTP/2 只在 HTTPS 上启用,现在是全站 HTTPS 的时代。

六、常见误区

  • ❌ 以为 HTTPS 只是「加密」——它还包含完整性校验和身份认证(证书),三者缺一不可。
  • ❌ 以为 HTTPS 全程用非对称加密——握手用非对称协商密钥,数据传输用对称加密(混合)。
  • ❌ 以为有了 HTTPS 就绝对安全——它保护「传输过程」,防不了服务器本身被攻破、或用户被钓鱼。
  • ❌ 把端口记混——HTTP 是 80,HTTPS 是 443。

六、常见误区与追问

考点正确口径
HTTP明文传输,不验证身份,不防篡改
HTTPSHTTP over TLS,提供加密、认证、完整性
代价握手和证书校验有开销,但可通过复用和 TLS 1.3 优化
HTTP request -> plaintext
HTTPS:
  TLS handshake
  encrypted HTTP data
  certificate authentication

HTTPS 不是新应用协议,而是在 HTTP 和 TCP 之间加了 TLS 安全层。

  • 误区:HTTPS 只解决加密,不解决身份。 证书链用于证明服务器公钥可信,防止中间人冒充。
  • 误区:用了 HTTPS 就绝对安全。 HTTPS 保护传输链路,但不解决 XSS、业务越权、弱口令等应用安全问题。
  • 误区:HTTPS 一定很慢。 现代 TLS、会话复用、HTTP/2/3 和硬件加速让开销通常可控。
  • 追问:HTTPS 提供哪三类保护? 机密性、完整性、身份认证,分别应对窃听、篡改和冒充。
  • 追问:为什么不全程用非对称加密? 非对称加密慢,通常用于认证和密钥协商,数据传输用对称加密。
  • 追问:证书过期会怎样? 浏览器会警告或阻止访问,因为无法确认服务器身份仍可信。

七、加强记忆

HTTPS = HTTP + TLS,在传输层之上加密。它解决 HTTP 明文的三大问题:加密防窃听、完整性校验防篡改、CA 证书防冒充。用「非对称加密协商出对称密钥、之后用对称加密传数据」兼顾安全与性能,用数字证书解决「公钥可信」。端口 HTTP 80 / HTTPS 443,代价是握手开销略高。