Skip to content

模块导航: 总入口 · 总纲与方法 · 后端场景 · AI与算法工程 · 国企与金融 · 网络问答


13. HTTP 与 HTTPS 的区别(热度 451 · 高频选考) ​

Q: HTTP 和 HTTPS 有什么区别?

A:

对照表 ​

维度HTTPHTTPS
协议应用层明文HTTP + TLS/SSL
端口80443(默认,可配置其他)
安全性明文,可窃听/篡改/冒充加密 + 完整性校验 + 身份认证
证书无需 CA 签发证书(及私钥)
性能无加密开销有握手与加解密开销(会话复用、HTTP/2、TLS1.3、AES-NI 缓解)
SEO无优势搜索引擎加权
浏览器标识涉及密码/卡片时常提示不安全安全锁标

HTTPS 解决什么?(三类威胁) ​

威胁攻击HTTPS 对策
窃听截获明文加密(对称会话密钥)
篡改中途改报文完整性校验(MAC/AEAD、握手摘要)
冒充伪造服务器身份认证(证书 + 非对称签名)

HTTPS = HTTP over TLS。 语义与 HTTP 基本相同,差别在 socket 之上多了 TLS 记录层。握手增加 1~2 个 RTT(TLS1.3 更少);同连接可复用会话/票据;CPU 开销在 AES-NI 下可接受。迁移:301、HSTS、全站资源 HTTPS、证书自动续期(ACME)。

常见追问 ​

追问 1:HTTPS 一定更安全吗?会不会仍有风险?

  • 答题要点: 相对明文 HTTP 大幅提升机密性/完整性/身份认证,但仍可能:证书链被恶意根伪造、客户端关闭校验、应用层漏洞(XSS/CSRF/越权)、混合内容降级、用户忽略警告。HTTPS 不是「应用绝对安全」。

追问 2:端口 443 是安全的来源吗?

  • 答题要点: 不是。安全来自 TLS 证书校验与密码学;443 只是默认约定。HTTPS 也可监听其他端口,HTTP 也可被错误地用在 443。

追问 3:为什么搜索引擎偏好 HTTPS?

  • 答题要点: 保护用户隐私、减少中间人注入广告/劫持,提升整体生态信任;工程上也与 HTTP/2 部署习惯相关。SEO 是结果之一,不是协议安全机制本身。

易错点 ​

易错说法纠正
「HTTPS=HTTP 加个端口」核心是 TLS:加密+完整性+认证
「HTTPS 完全防 XSS/SQL 注入」传输层安全不替代应用安全
「HTTPS 太慢不能上」现代优化后开销可接受,且是基本合规要求
「没有证书也能 HTTPS」公共 HTTPS 需要可信证书;自签仅限实验
「80 和 443 混用无影响」会影响 Cookie Secure、HSTS、中间设备策略

与选择题对照 ​

  • 主库 150: 第 74/91 题(443/HTTPS 组成)、第 84 题(HTTP 特点)、第 98/103/104/105 题(安全威胁)、第 99/113/114/115 题(加密与 TLS)、第 124 题(访问顺序)。
  • 补题 16: 补-14(邮件明文/加密端口对照,可类比 HTTP/HTTPS)。
  • 口述联动: 选择题考端口与组成;面试要落到「三类威胁 ↔ 三类安全属性」以及性能与迁移。

工程 / 抓包背景 ​

  • 对比抓包: Wireshark 中 tcp.port==80 可直接读明文 HTTP;tcp.port==443 应用数据加密(未配置密钥日志时)。
  • curl: curl -v http://example.com 与 curl -v https://example.com;观察 SSL connection using...。
  • Nginx:
    nginx
    listen 80;
    return 301 https://$host$request_uri;
    listen 443 ssl;      # ≤1.24 可在本行尾加 http2;1.25.1 起该参数标记为 deprecated(尚未移除)
    http2 on;             # 1.25.1+ 推荐写法
    ssl_certificate fullchain.pem;
    ssl_certificate_key privkey.pem;
  • HSTS: Strict-Transport-Security: max-age=31536000; includeSubDomains 强制 HTTPS。
  • 排障: openssl s_client 验证书;curl -I 看跳转链是否全 HTTPS。

持续学习,持续积累。