▎ 性质:纯知识点汇总,建议收藏当速查表
一、请求方法
| 方法 | 语义 | 幂等 | 有请求体 |
|---|---|---|---|
| GET | 查询资源 | 是 | 一般没有 |
| POST | 新增资源 | 否 | 有 |
| PUT | 全量更新 | 是 | 有 |
| PATCH | 局部更新 | 否(视实现) | 有 |
| DELETE | 删除资源 | 是 | 一般没有 |
幂等:执行一次和执行多次,对服务器状态的影响相同。这是面试高频点。
二、状态码
| 分类 | 含义 | 常见码 |
|---|---|---|
| 2xx | 成功 | 200 成功、201 已创建、204 无内容 |
| 3xx | 重定向 | 301 永久重定向、302 临时重定向、304 未修改(走缓存) |
| 4xx | 客户端错误 | 400 参数错误、401 未认证、403 无权限、404 资源不存在、405 方法不允许、429 请求过多 |
| 5xx | 服务端错误 | 500 服务器内部错误、502 网关错误、503 服务不可用、504 网关超时 |
易混点:401 是「你是谁不知道」,403 是「知道你是谁,但你没权限」。
三、常见请求头与响应头
| 头部 | 位置 | 作用 |
|---|---|---|
| Host | 请求 | 目标域名 |
| Content-Type | 请求/响应 | 请求体格式 |
| Content-Length | 请求/响应 | 请求体字节数 |
| Authorization | 请求 | 身份凭证(Token 放这里) |
| Cookie | 请求 | 携带会话信息 |
| User-Agent | 请求 | 客户端标识 |
| Set-Cookie | 响应 | 服务端下发 Cookie |
常用 Content-Type 格式
| 格式 | 使用场景 |
|---|---|
| application/json | JSON 请求(主流 REST 接口) |
| application/x-www-form-urlencoded | 表单提交 |
| multipart/form-data | 文件上传 |
| text/html | HTML 页面 |
| text/plain | 纯文本 |
选错 Content-Type,服务端解析不到参数,直接 400 或 415。
五、Cookie / Session / Token 对比
| 对比项 | Cookie | Session | Token |
|---|---|---|---|
| 存哪 | 客户端浏览器 | 服务端 | 客户端(前端存储) |
| 核心作用 | 存放会话标识 | 服务端保存用户状态 | 自包含的凭证 |
| 跨端支持 | 浏览器为主 | 一般 | 好,App/小程序都行 |
| 典型形式 | JSESSIONID=xxx | 服务端内存/Redis | JWT 字符串 |
六、GET 与 POST 的区别
| 对比项 | GET | POST |
|---|---|---|
| 参数位置 | URL 查询字符串 | 请求体 |
| 可见性 | 明文暴露在 URL | 相对隐藏(但也不加密) |
| 长度限制 | 受浏览器/服务器限制 | 理论上无限制 |
| 幂等性 | 是 | 否 |
| 缓存 | 可被缓存 | 一般不缓存 |
▎ 注意:POST 并不比 GET「更安全」,安全性取决于 HTTPS,不取决于方法。
七、RESTful 设计要点
- URL 用名词表示资源:/users/1,而不是 /getUser?id=1
- 用 HTTP 方法表达操作:GET 查、POST 增、PUT 改、DELETE 删
- 用状态码表达结果:成功 200/201,不存在 404,无权限 403
- 层级表示从属关系:/users/1/orders 表示用户 1 的订单
八、接口测试关注点清单
对应上面知识点,测一个接口时重点看:
- 方法是否正确、URL 是否正确
- 参数:必填/选填、类型、边界值、异常值
- 状态码是否符合语义
- 响应体:字段完整性、数据类型、业务码
- 鉴权:未带 token 是否返回 401
- 幂等:同一请求重复发送是否产生脏数据
- 性能粗看:响应时间、大并发下是否 5xx
九、记忆口诀
- 状态码:2 成功、3 跳转、4 你错、5 它错
- 鉴权:401 不认识你,403 认识但不让进
- 方法:查增改删 GET POST PUT DELETE