源本科技 | 码上会

HTTP/HTTPS 超文本传输协议

2025/12/29
34
0

学习目标

  • 理解 HTTPS 的基本概念及其与 HTTP 的区别

  • 掌握 HTTPS 的工作原理,包括 SSL/TLS 的作用

  • 了解加密机制(公钥 / 私钥)在 HTTPS 中的应用

  • 认识 HTTPS 对网站安全的重要性

  • 能够识别浏览器中的安全标识(如锁形图标)


什么是 HTTPS

HTTPS(HyperText Transfer Protocol Secure,超文本传输安全协议)是 HTTP 的安全版本,用于在 Web 浏览器和网站服务器之间安全地传输数据。

  • 它通过 SSL(Secure Sockets Layer)或其继任者 TLS(Transport Layer Security)对通信内容进行加密。

  • 凡是涉及用户敏感信息(如登录凭证、支付信息等)的网站,必须使用 HTTPS

  • 在浏览器地址栏中,你可以看到一个 锁形图标 🔒,表示当前页面已启用 HTTPS,连接是安全的。

  • 现代浏览器(如 Google Chrome)会将未使用 HTTPS 的网站明确标记为 “不安全”


HTTPS 的工作原理

HTTPS 并非完全取代 HTTP,而是在 HTTP 协议之上增加了一层 SSL/TLS 加密层

工作流程

  1. 用户在浏览器中访问一个 https:// 开头的网址。

  2. 浏览器向服务器发起连接请求。

  3. 服务器返回其 SSL 证书(包含公钥)。

  4. 浏览器验证证书的有效性(是否由可信机构签发、是否过期等)。

  5. 双方通过 TLS 握手 协商加密算法,并生成会话密钥。

  6. 后续所有通信均使用该会话密钥进行 对称加密,确保高效与安全。

注意:虽然底层仍使用 HTTP 协议进行请求与响应,但整个通信过程运行在 SSL/TLS 建立的加密隧道中。


为什么 HTTPS 至关重要

不使用 HTTPS

即仅用 HTTP

  • 数据以明文形式在网络中传输。

  • 攻击者可使用免费工具(如 Wireshark)轻松截获数据包

  • 在公共 Wi-Fi 等不安全网络中,极易遭受中间人攻击(Man-in-the-Middle Attack)。

  • 用户密码、银行卡号、聊天记录等敏感信息可能被窃取。

使用 HTTPS 后

  • 所有传输数据均被加密,即使被截获也无法解读

  • 明文

This is a string of text that is completely readable
  • 加密后

ITM0IRyiEhVpa6VnKyExMiEgNveroyWBPlgGyfkflYjDaaFf/Kn3bo3OfghBPDWo6AfSHlNtL8N7ITEwIXc1gU5X73xMsJormzzXlwOyrCs+9XCPk63Y+z0=

SSL/TLS 与加密机制

SSL(安全套接层)

SSL 是保障通信安全的标准技术,主要职责包括:

  • 验证服务器身份(防止连接到假冒网站)

  • 确保只有通信双方能读取交换的消息

  • 提供数据加密与完整性校验

注:SSL 已被更安全的 TLS 取代,但“SSL 证书”这一术语仍被广泛使用。

HTTPS 中的密钥体系

非对称加密

HTTPS 使用 公钥基础设施(PKI)实现安全通信:

密钥类型

作用

存储位置

是否公开

公钥(Public Key)

用于加密数据

包含在 SSL 证书中,随服务器发送给客户端

✅ 公开

私钥(Private Key)

用于解密由公钥加密的数据

仅保存在服务器上,由网站所有者严格保管

❌ 保密

实际数据传输通常采用 对称加密(如 AES),因为效率更高。公钥 / 私钥仅用于初始握手阶段的安全密钥交换。

常用加密与哈希算法

  • RSA:非对称加密算法,用于 TLS 握手时安全交换会话密钥。

  • SHA-256:哈希算法,用于数字签名和证书完整性验证(不用于加密数据本身)。


HTTP 与 HTTPS 对比

特性

HTTP

HTTPS

全称

超文本传输协议

超文本传输安全协议

URL 前缀

http://

https://

安全性

❌ 明文传输,不安全

✅ 加密传输,防窃听篡改

工作层级

应用层

传输层(通过 SSL/TLS)

速度

较快(无加密开销)

略慢(需加解密,但现代硬件影响极小)

端口

默认 80

默认 443

SEO 影响

搜索引擎排名较低

Google 等优先收录 HTTPS 网站

尽管 HTTPS 有轻微性能开销,但随着硬件加速和 TLS 1.3 的普及,这一差距已几乎可以忽略。


重点总结

  • HTTPS = HTTP + SSL/TLS,核心在于数据加密身份认证

  • 所有涉及用户隐私或交互的网站都应部署 HTTPS。

  • 浏览器通过锁形图标和 “Not Secure” 警告引导用户关注安全。

  • 加密依赖公钥 / 私钥机制,实际通信使用高效对称加密。

  • HTTP 明文传输极易被监听,HTTPS 是现代 Web 安全的基石。


思考题

  1. 为什么 HTTPS 使用非对称加密进行密钥交换,却用对称加密传输实际数据?

  2. 如果一个电商网站只在登录页使用 HTTPS,而在商品浏览页使用 HTTP,会带来什么安全风险?

  3. 如何在自己的本地开发环境中测试 HTTPS?(提示:可使用自签名证书或工具如 mkcert