意义
开发web项目的时候可以通过浏览器的debug或者Network去查看req和res的各个网络资源和数据,但是对于线上项目测试的时候想要测试接口,要么原部署项目修改接口后,复制一份,然后测试。但是资源消耗大,繁琐。所以需要一个工具可以对请求进行转发。
对于移动端开发没有浏览器的情况下则需要抓包工具。
charles
是一个http代理服务器,反转代理服务器,当程序连接charles的代理访问互联网时,charles可以监控这个程序发送和接收的所有数据。它允许一个开发者查看所有连接诶互联网的http通信,这些包括req,res和headers(请求头,缓存,cookies)
主要功能
- 将charles设置成系统处理
- 截取移动设备上的网络
2.1 手动重复请求
2.2 手动模拟请求
2.3 修改网络请求内容 - 过滤网络请求
- 代理转发
- 支持https请求抓包
操作面板
structure : 视图将网络亲鼓起按照域名分类
sequence : 视图将网络请求按访问的时间排序
三个按钮是请求的拦截通道,乌龟按钮打开是模拟慢速网络。
右边视图可以查看和修改请求头和请求数据
mac 和 window 的按键都是一样的
一、将charles设置成系统代理
charles 是通过将自己设置成代理服务器来完成转包的,勾选系统代理后,系统本地发出去的请求都能被截取下来。
其中chrome和firefox浏览器默认使用的是系统的大力服务器设置。charles其实是将自己设置成代理服务器来完成封包截取,所以需要在浏览器中的代理设置成本机的 127.0.0.1:8888 。
二、截取移动设备上的网络请求包
一般是默认的是 8888 端口。
配置手机代理:
在手机wife里面选择联网的wife,然后点击wife显示高级配置-》修改代理为手动,填写电脑的 ip 和默认的 charles 8888 端口。
之后连接wife 。
charles这边就会弹出确认消息选择 Allow 就可以截取手机的所有流量了。
如果不小心点击了拒绝
- 可以直接手动添加手机ip/mac地址到允许访问列表。
- 重启charles,手机再次访问,就会再次提示选择。
- 或者配置所有手机访问,加入0.0.0.0/0 (IPV4)或者 ::/0 (IPV6)。
三、过滤网络请求
网络请求是非常大量的,而且很杂,所有需要在sequence 中的 Filter 。
- 填入固定的关键字,就可以自动筛选(一般用于临时过滤)
- 在会话中查找,按CTRL + F 或者 Command + F。过滤对应的请求
- 在 proxy -> Recording Settings 中填写协议,主机地址,端口 。以后抓包就只会过滤出来写的域名地址。
- 过滤焦点域名,点击一个域名,右键focus,功能和3比较类似。
四、代理转发
很神奇的一个功能,可以好好开发。
简单来说就是把调用方调用的地址转发到本机地址的程序进行执行。
步骤:选择域名 --> 右键按 map Remote 设置转发到那个地址上就行。
五、https请求抓包
https 默认是看不到https的请求数据。需要安装证书,
两个按钮一个是给本机安装证书,下面是给移动端设备安装证书,根据提示进行安装证书,就可以访问https了。