分层快速回顾
| 层 | 协议 | 职责 | |---|---|---| | 应用 | HTTP/DNS | 报文语义 | | 传输 | TCP/UDP | 端到端可靠/不可靠 | | 网络 | IP | 路由寻址 | | 链路 | 以太网 | 帧传输 |
后端面试重点在 TCP + HTTP/TLS,偶尔 DNS、ARP。
TCP 要点
- 可靠:序号、确认、重传、滑动窗口、拥塞控制(慢开始、拥塞避免、快重传/快恢复)。
- 三次握手:SYN → SYN-ACK → ACK。
- 四次挥手:FIN → ACK → FIN → ACK;TIME_WAIT 等待 2MSL,防旧包干扰新连接。
- 粘包:应用层定界(长度前缀、分隔符);Nagle 算法与小包延迟权衡。
HTTP 演进
HTTP/1.1:Connection: keep-alive 复用 TCP;同一连接上请求仍可能队头阻塞。
HTTP/2:流多路复用、HPACK 压缩头部、服务端推送(实际少用)。
HTTP/3:基于 QUIC(UDP),减少握手 RTT,弱网更稳。
常用状态码:200 成功、301/302 重定向、304 协商缓存、400 客户端错误、401 未认证、403 无权限、404、429 限流、500 服务端错误。
关键头部
Host:虚拟主机路由Content-Type/Accept:实体类型Cache-Control/ETag/If-None-Match:缓存Authorization/Cookie:认证X-Forwarded-For:代理链真实 IP
实战题方向
- 从 URL 到页面:DNS → TCP 握手 → TLS → HTTP 请求 → 响应解析。
- 长连接 vs 短连接 对 QPS 与端口耗尽影响。
- 反向代理 Nginx 负载均衡、超时、缓冲。
- WebSocket:Upgrade 全双工,与 HTTP 长轮询对比。
GET /api/users HTTP/1.1
Host: api.example.com
Accept: application/json
Authorization: Bearer <token>
答题用「分层 + 时序」画图口述,再补工程经验(连接池大小、超时、重试幂等),比背 RFC 更显水平。