一、HTTP 和 HTTPS 简介
-
HTTP(HyperText Transfer Protocol)
- 用途:用于网页数据传输(不加密)。
- 协议特性:以明文形式传输数据,默认端口 80,无身份验证和完整性保护。
- 典型场景:访问简单静态网站,如
http://example.com
。
-
HTTPS(HTTP Secure)
- 用途:在 HTTP 基础上通过 SSL/TLS 加密传输数据。
- 协议特性:加密通信、身份验证(证书)、数据防篡改,默认端口 443。
- 典型场景:登录、支付等敏感操作(如
https://bank.com
)。
二、网络四层协议(TCP/IP 模型)
以发送一封电子邮件为例的分层逻辑:
分层 | 功能 | 示例工具 | 类比 |
---|---|---|---|
应用层 | 处理应用程序数据 | HTTP、SMTP、DNS | 信封内容(信件正文) |
传输层 | 端到端连接管理 | TCP(可靠)、UDP(快速) | 邮局确认收件人收到信件(挂号信) |
网络层 | 逻辑寻址与路由 | IP、路由器 | 分拣中心确定信件的目的城市 |
网络接口层 | 物理传输(电缆、WiFi) | Ethernet、Wi-Fi | 卡车将信件运送到下一个中转站 |
三、HTTP/HTTPS 在四层中的定位
-
应用层:HTTP/HTTPS 协议本身(定义数据格式)。
- HTTP:明文传输
GET /index.html
。 - HTTPS:加密后的 HTTP 数据(如
g8Fw6£ad...
)。
- HTTP:明文传输
-
传输层:TCP 协议(为 HTTP/HTTPS 提供可靠连接)。
- 建立 TCP 三次握手:
SYN → SYN-ACK → ACK
。
- 建立 TCP 三次握手:
-
网络层:IP 协议(负责将数据包路由到目标服务器)。
- 例如:从
192.168.1.2
到93.184.216.34
(example.com 的 IP)。
- 例如:从
-
网络接口层:通过网线或 Wi-Fi 传输比特流。
四、交互示例:访问 https://www.example.com
步骤 1:DNS 解析
- 应用层:浏览器查询 DNS(如
www.example.com → 93.184.216.34
)。
步骤 2:TCP 连接
- 传输层:通过 TCP 三次握手建立连接。
plaintext
客户端 → 服务端:SYN 服务端 → 客户端:SYN-ACK 客户端 → 服务端:ACK
步骤 3:TLS 握手(HTTPS 专属)
- 客户端发送支持的加密算法列表。
- 服务端返回证书和选择的加密方式(如 TLS 1.3)。
- 客户端验证证书合法性,生成会话密钥并加密传输。
步骤 4:HTTP 请求/响应
- 应用层(加密):
http
GET / HTTP/1.1 Host: www.example.com
- 服务端返回加密的 HTML 页面数据。
五、HTTP vs HTTPS 对比
特性 | HTTP | HTTPS |
---|---|---|
安全性 | 明文,易被窃听/篡改 | 加密传输,防窃听/篡改 |
证书 | 无需证书 | 需 CA 颁发的 SSL 证书 |
性能 | 无加密开销,更快 | 加密轻微增加延迟(约5%) |
使用场景 | 非敏感信息(新闻页面) | 登录、支付、API 通信 |
六、总结
- HTTP 是互联网通信的基础,但在安全性上有明显缺陷。
- HTTPS 通过 SSL/TLS 协议实现加密、身份认证和防篡改。
- 四层协议 明确分工:应用层关注数据本身,传输层保证送达,网络层负责寻址,接口层完成物理传输。
示例交互流程图:
用户输入 URL → DNS 解析 → TCP 握手 → (HTTPS: TLS 握手) → 发送请求 → 接收响应 → 渲染页面