Charles是Mac下一款截取网络封包的工具,主要原理就是将本身设置成为熊网络访问的代理服务器,这样的话,全部的网络请求都得经过它来完成,从而实现网络封包的拦截分析。后端
这款软件功能总体来讲仍是很是强大的,例如支持SSL代理,流量控制(能够模拟慢速网络,比较经常使用),支持修改和重发网络请求(这样能够方便服务器端去调试)等等很是实用的功能。具体可去官网(http://www.charlesproxy.com)了解,下面就简单的说下经常使用的功能:浏览器
在使用以前必须把这玩意设置成为系统的代理,具体方法以下:第一次启动,Charles会请求你将它设置成为系统代理,若是你手抖或者不认得英文单词点了拒绝,那么启动后你也能够经过菜单“Proxy”->"Mac OS X Proxy"来设置。服务器
设置好以后你再打开浏览器就能够看到不少请求,主界面以下:网络
由于全部的网络封包都会被列出来,不少都是你不关注的,那么你能够经过上图中 Filter 输入框去筛选,也能够经过工具
这种方式去添加你要截取的目标网站就行。网站
那么怎么去拦截iPhone上的网络封包呢?代理
必须进行两项设置,一个是Charles设置,按如下顺序调试
一个是iPhone上的设置:设置-》无线局域网,选中当前链接的wifi,单击右边详情,拉倒最底部,找到HTTP代理 这块,选择手动,而后输入IP地址(在Mac的终端上输入ifcongfig en0命令能够查看,必须一致)和端口号8888,这时候再点击OK后,你会看到Charles弹出一个连接确认的请求,记得选择 “Allow”。好,到此就能够拦截你手机上发出的网络封包了。it
下面是模拟慢速网络功能,很简单,做以下设置就行:原理
而后还有,截取SSL信息功能,只须要在对应的请求上右击,选择SSL Proxying就能够对相应的Host全部的SSL请求拦截;
修改网络请求内容,也是右击对应的请求,而后选择edit进行编辑,完过后单击“Execute”按钮。
固然,还有个有用的功能就是修改服务器响应的内容(能够本身模拟一下特殊数据,减轻后端哥们的压力)这个相对来讲有点复杂,它提供了Map(适合长期地将某一个请求重定向到另外一个网络地址-Map Remote 或者本地文件-Map Local),Rewrite(适合对网络请求进行一些正则替换),Breakpoints(适合一些临时性德修改)三个功能,均可以完成修改服务器响应内容的目的,具体使用还要根据我的需求来。
首先是Map Remote
而后是Map Local
而后Rewrite ,匹配什么,替换成什么,相信聪明如你,一看就懂
下面是Breakpoint功能
开启此功能后,对于指定的网络请求,响应后都会被断点拦截,此时你就能够经过Edit Response去修改响应内容,而后单击 Execute按钮就行,其中须要注意的是客户端响应超时哦。