项目总结(四)--- 网络封包分析工具Charles

  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”。好,到此就可以拦截你手机上发出的网络封包了。

  

  下面是模拟慢速网络功能,很简单,作如下设置就行:

  

  

  然后还有,截取SSL信息功能,只需要在对应的请求上右击,选择SSL Proxying就可以对相应的Host所有的SSL请求拦截;

  修改网络请求内容,也是右击对应的请求,然后选择edit进行编辑,完事后单击“Execute”按钮。

  当然,还有个有用的功能就是修改服务器响应的内容(可以自己模拟一下特殊数据,减轻后端哥们的压力)这个相对来说有点复杂,它提供了Map(适合长期地将某一个请求重定向到另一个网络地址-Map Remote 或者本地文件-Map Local),Rewrite(适合对网络请求进行一些正则替换),Breakpoints(适合一些临时性德修改)三个功能,都可以完成修改服务器响应内容的目的,具体使用还要根据个人需求来。

  首先是Map Remote

   

  然后是Map Local 

  然后Rewrite ,匹配什么,替换成什么,相信聪明如你,一看就懂

  

下面是Breakpoint功能

开启此功能后,对于指定的网络请求,响应后都会被断点拦截,此时你就可以通过Edit Response去修改响应内容,然后单击 Execute按钮就行,其中需要注意的是客户端响应超时哦。

原文地址:https://www.cnblogs.com/dashunzi/p/4253376.html