一、HTTP 和 HTTPS 的区别(必背)
1️⃣ 本质区别(一句话)
HTTP 是明文传输,HTTPS 是在 HTTP 基础上加了一层 SSL/TLS 加密。
2️⃣ 核心对比表
| 对比项 | HTTP | HTTPS |
|---|---|---|
| 是否加密 | ❌ 明文 | ✅ 加密 |
| 安全性 | 低 | 高 |
| 端口 | 80 | 443 |
| 证书 | 不需要 | 需要 CA 证书 |
| 防篡改 | ❌ | ✅ |
| 防中间人 | ❌ | ✅ |
| 性能 | 稍快 | 略慢(已可忽略) |
3️⃣ HTTPS 解决了什么问题?
HTTP 三大风险
窃听(明文被抓包)
篡改(内容被修改)
冒充(假服务器)
HTTPS 三大能力
加密
身份认证
完整性校验
二、HTTPS 底层原理(TLS 握手流程)⭐
面试官很爱从 HTTPS 问到这里
简化版流程(记住这个)
1. 客户端 → ClientHello 2. 服务端 → ServerHello + 证书 3. 客户端验证证书 4. 协商对称密钥 5. 使用对称加密通信关键点
非对称加密:用于交换密钥
对称加密:用于真正传输数据(快)
三、令牌(Token)是什么?为什么要用?
1️⃣ Token 是什么?
Token 是服务器签发的一段字符串,用来标识用户身份。
常见:
JWT
Access Token
Refresh Token
2️⃣ 为什么不用 Session?
| Session | Token |
|---|---|
| 依赖服务器存储 | 无状态 |
| 不适合分布式 | 适合 |
| 需要 Cookie | 可脱离 Cookie |
3️⃣ Token 的典型流程
1. 登录成功 → 服务端生成 Token 2. 客户端保存 Token 3. 每次请求携带 Token 4. 服务端校验 Token常见携带方式
Authorization: Bearer xxx4️⃣ JWT 的结构(常考)
Header.Payload.SignatureHeader:算法
Payload:用户信息
Signature:防篡改
5️⃣ Token 为什么要配合 HTTPS?
👉Token 本身不加密
👉 没 HTTPS = Token 会被抓包
四、TCP 三次握手(超高频)⭐
1️⃣ 为什么要三次?
确保双方的收发能力都正常。
2️⃣ 三次握手流程(背这个)
第一次:客户端 → SYN 第二次:服务端 → SYN + ACK 第三次:客户端 → ACK图示理解
客户端 服务端 | ---- SYN ----> | | <--- SYN+ACK --| | ---- ACK ----> |3️⃣ 每一步干了什么?
1️⃣ 客户端:
“我能发,你能收吗?”
2️⃣ 服务端:
“我能收,也能发,你呢?”
3️⃣ 客户端:
“我也能收,开始通信吧”
4️⃣ 为什么不是两次 / 四次?
两次:服务端不知道客户端能不能收
四次:浪费一次
五、HTTP 请求整体流程(串起来)
1. DNS 解析 2. TCP 三次握手 3. TLS 握手(HTTPS) 4. HTTP 请求 / 响应 5. TCP 四次挥手六、面试 30 秒连环回答模板(直接背)
HTTP 是明文传输不安全,HTTPS 在 HTTP 上通过 TLS 实现加密、认证和完整性校验;
HTTPS 握手阶段使用非对称加密协商对称密钥,后续通信使用对称加密;
登录后通常使用 Token 鉴权,客户端在请求头中携带,必须依赖 HTTPS 防止被窃取;
所有通信建立前都需要经过 TCP 三次握手来确认双方收发能力。