HTTP 与 HTTPS 协议详解
HTTP 与 HTTPS 的区别
| 特性 | HTTP | HTTPS |
|---|---|---|
| 协议 | 应用层协议 | 应用层协议 + SSL/TLS |
| 端口 | 80 | 443 |
| 安全性 | 无加密 | 加密传输 |
| 证书 | 不需要 | 需要 SSL 证书 |
| 性能 | 较快 | 相对较慢(需要加密解密) |
HTTP 协议
HTTP 协议内容都是按照文本的方式明文传输的. 这就导致在传输过程中出现一些被篡改的情况.
HTTP 报文传输原理
以一个 HTTP 请求的传输为例,请求从 HTTP 客户端(如浏览器)和 HTTP 服务端应用的传输过程,大致如下图所示: 
HTTP 劫持
HTTP 劫持是一种常见的网络攻击方式,主要包括以下几种类型:
DNS 劫持
- 攻击者修改 DNS 解析结果
- 将用户引导到恶意网站
- 示例:用户访问
www.bank.com被重定向到钓鱼网站
内容劫持
- 在传输过程中修改网页内容
- 插入广告或恶意代码
- 示例:在正常网页中插入广告弹窗
会话劫持
- 窃取用户的会话信息
- 冒充用户身份进行操作
- 示例:获取用户的 Cookie 后冒充用户登录
注释: 比如你现在要下载一个 qq 软件,但是点击下载 qq,但是跳转到了下载其它东西,这就可能是请求被劫持了
HTTPS 协议
什么是 HTTPS
HTTPS(HyperText Transfer Protocol Secure)是 HTTP 的安全版本,它在 HTTP 的基础上加入了 SSL/TLS 协议,提供了数据加密、身份认证和数据完整性保护。
HTTPS 的工作原理
- 客户端发起 HTTPS 请求
- 服务器返回 SSL 证书
- 客户端验证证书
- 生成对称密钥
- 使用非对称加密传输对称密钥
- 使用对称密钥加密通信
HTTPS 的优势
- 数据加密:防止数据被窃听
- 身份认证:确保访问的是正确的服务器
- 数据完整性:防止数据被篡改
总结
HTTP 和 HTTPS 是 Web 通信的基础协议,理解它们的区别和适用场景对于开发安全的 Web 应用至关重要。在当今互联网环境下,建议尽可能使用 HTTPS 来保护数据传输的安全性。
