charles mac版手机抓包

官网

http://www.charlesproxy.com

安装设置

mac按提示安装

安装完成后需要给charles权限,如果没有给予权限,charles无法抓包。

点击proxy->MAC OS X proxy

链接设置

ifconfig 找到电脑ip 服务器填电脑ip 端口默认8888(下图)

此时charles会自动弹出对话问是否允许通过chales代理访问。点击allow。如果想默认允许任何用户访问, 打开 面包Setting->Access Control Settings面板,点击add按钮 增加 <0.0.0.0>/0,以后就不会有该对话了。

抓包分析

overview

(上图)包含了请求一些基本信息,如地址,请求方式、内容类型、耗时等等

request

(上图) 上图包含的信息非常重要, 说明此处http请求有多少数据发给服务端,如常用的cookie信息和user-agent(浏览器表示)信息

Query string 、 Cookies 和 Raw tab为格式化信息,方便查看(下图)

双击后可以复制里面信息,不可编辑(如下图)

response

可以看到非常详细返回信息,Set-cookie,表明本次请求服务端设置了哪些cookie(双击后可复制不可编辑)

Summary、Chart、Notes等是请求耗时解析,建议在chrome浏览器查看,更加详细和一目了然(以下chrome截图)

Queueing 浏览器有连接限制,当网页资源很多时就会出现排队的现象,排队的资源要等到上一个资源加载完毕释放后才能开始请求。比关键资源(如javascript与css)低优先级的请求会被浏览器推迟,一般推迟的都是图片。在许多资源同时发起请求时浏览器默认先加载css,然后javascript,最后才是图片。

Stalled 浏览器得到要发出这个请求的指令,到请求可以发出的等待时间,一般是代理协商、以及等待可复用的TCP连接释放的时间,不包括DNS查询、建立TCP连接等时间等

Request sent 请求第一个字节发出前到最后一个字节发出后的时间,也就是上传时间

Waiting 请求发出完成后,到收到响应的第一个字节所花费的时间(Time To First Byte),即响应时间

Content Download 收到响应的第一个字节,到接受完最后一个字节的时间,就是下载时间

高级功能

禁止缓存

禁止cookie

远程映射

选中一个请求-》右键-》Map Remote(下图) 弹出(下图2)

如果请求的参数有随机数,一定要将参数设置为通配符(**),否者下次请求的时候讲无法配对,导致映射失败。

查看远程映射记录

电脑菜单栏tools-》Map Remote

​ 弹出下图

远程映射非常有用

其作用是可以将一个地址代理成其他地址,开发和测试的通过这种方式使用线上app来进行调试和开发,无需繁琐的后台配置。

或者通过这种方式修改api数据,调试线上js bug 等等。

断点

重要作用

修改请求或者返回的header信息,包括cookie,修改请求的参数,修改返回的内容

设置

右键点击请求,选择BreakPoints,刷新页面后碰到这个请求后断点生效。(如下图)

此时会在request和response进行两次打断,

如果只需要打断一次可以对面板进行设置

点击电脑菜单栏Proxy-》Breakpoints Settings (如下图)

弹出下图

双击列表数据进入编辑模式(如下图)

如果只选择了request,那么只会在发送请求的时候打断

如果只选择了response, 那么只会在返回的时候打断

如果都选,打断两次

使用示例,request修改cookie

https抓包

​ step1:打开charles,选择菜单“Help” => “SSL Proxying” => “Install Charles Root Certificate”,安装根证书(如果是在手机上,请选择 Install Charles Root Certificate on a Mobile Device or Remote Browser…,在手机上安装根证书)

​ step2:打开钥匙串访问,找到 “Charles Proxy Custom Root Certificate证书”,系统默认提示“此证书已标记为不受此账户信任”

​ step3:选择“Charles Proxy Custom Root Certificate证书”,点击右键 =>显示简介 => 点击“信任”,设置信任该证书;

​ step4:在charles菜单中选择”Proxy” => “SSL Proxying”,勾选“Enable SSL Proxying”,添加白名单域名列表

其它功能

网速限制,本地映射,需要大家去摸索。

end