| HTTP 特点 | 应用层、无状态、请求-响应、基于 TCP(HTTP/3 前) |
| 请求方法幂等性 | GET/HEAD/PUT/DELETE 幂等;POST 不幂等——这是幂等键设计的依据 |
| 常见状态码 | 200/201/204、301/302/304、400/401/403/404/409/422/429、500/502/503/504 |
| 301 vs 302 | 301 永久(会被缓存)、302 临时;SEO 与缓存行为不同 |
| 401 vs 403 | 401 未认证(缺或错的凭证),403 已认证但无权限 |
| 400 vs 422 | 400 报文本身不合法,422 格式合法但语义校验失败 |
| 502 vs 504 | 502 网关从上游拿到无效响应(后端挂了),504 网关等上游超时 |
| Cookie / Session | Cookie 存客户端,Session 存服务端靠 Cookie 里的 SessionID 关联 |
| SameSite | Cookie 属性,Strict/Lax/None 控制跨站发送,是 CSRF 的第一道防线 |
| 同源策略 | 协议 + 域名 + 端口三者全同才算同源,是浏览器安全基石 |
| CORS | 服务端用 Access-Control-Allow-* 显式授权跨源请求;简单请求与预检请求(OPTIONS)机制不同 |
| 缓存头 | Cache-Control/ETag/Last-Modified/Expires;强缓存不发请求,协商缓存发请求得 304 |
| Cache-Control 常用值 | no-store(不缓存)、no-cache(可缓存但每次校验)、max-age、immutable |
| HTTP 版本演进 | 1.0 短连接 → 1.1 长连接+管线化 → 2 多路复用+头部压缩 → 3 基于 QUIC |
| HTTP/2 核心特性 | 二进制分帧、多路复用、HPACK 头部压缩、服务端推送(已废弃) |
| HTTP/2 队头阻塞 | TCP 层仍会阻塞:一个包丢了所有流都等,所以有了 HTTP/3 |
| HTTP/3 / QUIC | 基于 UDP,流级独立重传、0-RTT 建连、连接迁移,彻底绕开 TCP 层队头阻塞 |
| WebSocket | 一次 HTTP 握手升级后全双工长连接,适合推送与实时通信 |
| SSE | 服务端单向推送的文本流,基于普通 HTTP,比 WebSocket 轻 |
| RESTful | 用资源 + HTTP 动词表达语义,无状态、可缓存 |