一、抓包工具作用
1、看发出去的请求
2、定位问题:看是server端的问题还是客户端
3、能模拟一些服务端返回的异常情况
二、抓包方式:
电脑抓包不需要配置,直接打开charles,就会自动抓取电脑上所有的http请求,目前https请求抓不到需要安装相关证书,配置。
手机抓包设置:
1、必须保证手机和电脑在同一个局域网
2、获取电脑ip,查看charles端口号,默认是8888(charles中proxy-proxy settings)
3、将手机设置ip和端口。从wifi进入,设置ip,端口和charles一致
三、charles设置断点
选择需要拦截的请求,右键-breakpoints,这样每次该请求对服务器进行访问时,都会被charles拦截
拦截后就可以对发送的请求进行更改,比如对http://bj.58.com/设置断点后,再次刷新页面,如下
进入edit request,就可修改请求的所有信息:url、请求方法、herders、cookies等等,修改完成后,点击execute ,就会按照修改后的请求去访问服务器
比如将地址改为http://iqiyi.com,点击execute,就会跳转到爱奇艺网站,而不是北京58网站
选择要拦截的响应数据,并请求上右键-breakpoints,页面重新发送请求,在向服务器发送过程中停止,不改变内容,直接点击execute原样请求服务器。则在服务器返回数据时就再次会停止,此时服务器返回了响应数据,可在response中修改内容:
比如修改上述内容为“”hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh“”,执行execute
以上是使用charles对请求或响应数据进行修改案例。
另,charles因为会对电脑上所有的请求抓包,数据比较多乱,如果想只看某一个请求,可以在请求上右键-focus,就可以对所有的请求分类为 关注的请求和other hosts
四、charles抓取https
1、安装根证书
点击安装证书,安装过程中,直接将该证书安装到信任证书目录下
安装完成后,还需要进行一步设置
如下图,勾选Enable SSL Proxying
,点击添加,弹出下面的对话框,Host 表示你要抓取的 ip 地址或是链接,Port 填写 443 即可:
然后再次访问百度,发现可以抓包了
手机抓包:
1、手机必须跟电脑在同一个网段
2、设置代理:进入手机无线网,选择代理--手动:填写IP(电脑的ip),端口8888.设置完成后,就可以抓包了
如果想要抓https的包,
1、pc安装证书:Charles--help---sslproxying---install charlex root certificate 然后弹出证书安装窗口,按照操作安装证书到pc。
2、手机需要下载证书,下载地址: 点击charles---help--ssl proxying---install charles root certificate on a mobile device .....会弹出一个信息框,上面写的有证书下载地址
3、在手机浏览器输入地址,下载证书并安装。安装完成后,在手机通用--关于本机--证书信任列表中,将Charles证书设置为信任证书即可