我做了 8 年开发,带过几十个新人。
经验告诉我——比起讲一堆理论,不如带他们抓一次包。
这不是开玩笑。很多新手写接口调得天花乱坠,但出问题只能靠猜、靠问,原因就是他们从没“看到过真正发出的请求”。
为什么抓包是最好的教学辅助?
- 可视化:让复杂的请求结构变得“看得见”
- 直观验证:接口对不对、参数漏没漏,一目了然
- 减少扯皮:前后端都看包,避免“我以为你那边的问题”
- 独立成长:让新人学会自己查错、验证、定位
我是怎么带新人“用包说话”的
1. 项目启动时,每人都装好 Charles
我会要求所有新人配置好 Charles 和证书,尤其是做移动开发的。第一天就让他们抓下自己请求,看清自己发了什么,才能开始联调。
中文配置指引:charlesproxy.net/
2. 接口设计评审时,抓包还原数据结构
有次设计一个“订单状态流转”接口,我们让前端和后端分别模拟请求,用 Charles 抓出实际返回的字段结构,然后一起在评审会上比对实际字段和文档是否一致,结果发现字段 order_type 在接口返回里根本没有!
大家都以为“别人会加上”,但抓包一下就全清楚。
3. 联调中出问题,先不问,先抓
新人做联调遇到空数据、页面卡死时,我不直接给答案,而是教他们:
- 打开 Charles 抓包
- 找对应请求
- 看请求体和响应体
- 是否有 302?响应是 HTML 还是 JSON?header 有没有缺?
通过几次“自己查”的练习,他们慢慢会了。
4. 安排“接口异常模拟练习”
我会出一些“异常情况”练习:
- 模拟请求返回 403、500、空数据
- 修改请求参数,发一个不存在的 ID
- 把 token 改错,看前端是否正常处理异常
这些都靠 Charles 的断点修改 + 响应重写功能实现,特别适合测试前端对异常容错逻辑的健壮性。
培训中常用的抓包工具组合
| 工具 | 教学用途 |
|---|---|
| Charles | 主力,图形界面好讲解,断点重写最常用 |
| Fiddler | Windows 团队常用,可搭配规则讲解 |
| mitmproxy | 用于教自动化请求生成、测试数据批量回放 |
| 浏览器 DevTools | 基础级别讲请求发出和网络响应,但功能有限 |
我讲抓包时常举的例子
| 场景 | 教学重点 |
|---|---|
| 登录失败但状态码 200 | 状态码不等于成功,教会看响应体结构 |
| 请求参数缺失引发后端报错 | 让新人用 Charles 补全参数,再发一次 |
| 接口频繁超时 | 抓包看响应时间,再教如何读后端日志 |
| 请求结构正确但数据不对 | 教会比对 field value,非代码问题也能找出 |
结语:抓包,是代码世界的“实战训练营”
不论你是教学者、技术负责人,还是资深工程师,抓包不仅是调错工具,它也是教学引导、知识还原、沟通对齐的载体。
每个团队、每个新人,都值得拥有一次“自己查包、找问题”的经历。
如果你也在带新人或做团队培训,推荐从 Charles 开始。 中文资源丰富:charlesproxy.net/