面试题精讲:网络
1. TCP 三次握手 (Establishment)
核心考点: 为什么要三次?(确认双方的收发能力均正常,防止失效的连接请求突然到达服务端)。
- 第一次 (SYN):客户端发送
SYN(seq=x)。服务端确认:客户端发送正常。 - 第二次 (SYN/ACK):服务端返回
SYN+ACK(seq=y, ack=x+1)。客户端确认:服务端收发均正常。 - 第三次 (ACK):客户端发送
ACK(ack=y+1)。服务端确认:客户端接收正常。
2. TCP 四次挥手 (Termination)
核心考点: 为什么最后要等待 2MSL?(确保最后的 ACK 能够到达,并让本次连接产生的所有报文从网络中消失)。
- FIN:客户端发起,表示不再发送数据。
- ACK:服务端确认,但可能还有剩余数据要传。
- FIN:服务端传完数据,申请关闭。
- ACK:客户端确认,进入
TIME_WAIT状态。
3. HTTP 核心:GET vs POST
核心考点: 幂等性与安全性。
道满提醒: 不要说“POST 比 GET 安全”,在 HTTPS 普及的今天,两者在传输层都是加密的,安全性的差异主要在于参数是否暴露在地址栏。
4. 状态管理:Cookie, Session 与 JWT
核心考点: 无状态协议如何识别用户?
- Cookie:存储在浏览器的小型文本。不安全,易被跨站请求伪造 (CSRF)。
- Session:存储在服务器。依赖
session_id匹配。扩展性差(多机部署需同步)。 - JWT (JSON Web Token):现代主流。服务端不存状态,信息直接编码在 Token 中。适合微服务架构。
5. 负载均衡:Nginx vs Apache
核心考点: 并发模型对比。
- Nginx:异步非阻塞 (epoll)。像一个精明的管理员,一个线程处理上万请求。适合高并发、反向代理。
- Apache:多进程/线程。像一个老派工厂,一个请求占一个坑。胜在极其稳定,模块支持完美。
6. HTTP 状态码速查表
7. Web 安全双子星:XSS 与 CSRF
XSS (跨站脚本)
- 原理:在页面注入恶意 JS 脚本。
- 防御:对用户输入进行转义(Escape)、设置
HttpOnlyCookie。
CSRF (跨站请求伪造)
- 原理:利用用户的登录状态,伪造用户在其它站点的请求。
- 防御:验证 CSRF Token、检查
Referer头、使用SameSiteCookie 属性。
8. 架构演进:RPC 与 RESTful
核心考点: 内部通信 vs 外部接口。
- RESTful:基于 HTTP 谓词(GET/POST/PUT/DELETE),标准统一,适合前后端分离。
- RPC (gRPC/Thrift):二进制传输,性能极高。适合微服务内部这种对延迟极度敏感的场景。
9. Python Web 开发必知:WSGI 与 ASGI
- WSGI:旧时代的残党(Django 2.x/Flask)。一次请求,一个线程,无法处理 WebSocket 和长连接。
- ASGI:新时代的领航者(FastAPI/Starlette)。原生支持 async/await,支持异步高并发。

