Charles是抓包工具中的神器,开发者可以使用它方便的抓取http请求,并支持修改、重放等功能。对于PC端和移动端都非常方便。

1. 安装

首先从软件官方http://www.charlesproxy.com/ 下载,安装之前请确保已经安装了JDK,之后按照提示安装。注意:未注册版本,每隔30分钟会自动退出。

2. 配置与基本功能

对于Mac系统而言,打开charles之后,默认就已经对系统进行了代理,如果没有,则需要在菜单栏的Proxy上勾选上Mac OS X Proxy。
以打开365日历主页为例:
charles对于抓取的包可以进行保存,等下次要分析时,在打开。
Filter可以对请求进行过滤,并且支持通配符,比如只想查看以包含365rili且以.do为结尾的请求,可以在Filter中设置365rili.*.do。
Overview可以更加详细的查看这次请求的详细内容,例如耗时详细列车了请求开始时间、结束时间,响应开始时间、结束时间,总耗时、DNS耗时、网络延时等。
对于Size也详细列出了请求头大小、响应头大小、压缩比例等内容。
如果想查看更详细的请求信息,比如Header、cookie、form表单等可以点击Request,类似查看详细的响应选择Reponse。
除了对于PC端进行代理之外,还可以抓取客户端,在Proxy->Proxy Settings中设置代理端口号:
在手机端,WLAN设置中找到连接的wifi,设置代理:
把代理模式设置为手动,设置主机名为Charles所在机器的ip,端口号为Charles配置的代理端口。这样手机客户端的所有http请求,都会被charles代理。可以方便的查看客户端的http请求。

3. 高级功能

3.1 重放与编辑

点击一个请求,双值点击触摸板,可以对该请求进行复制、保存、重放和编辑操作。
Repeat Advanced高级重放功能可以作为简单的性能测试:
可以设置重放次数和并发数。
Edit:编辑修改功能,可以编辑修改任意请求信息,比如表单信息、cookie等,修改完毕后点Execute就可以发送一个修改后的请求数据包。

3.2 展示模式

除了以上图片中的Sequence模式之外,Charles还有Strucure展现形式:
可以按照域名进行划分,相比来说Sequence是按照请求顺序展示。
可以在View->Focussed Hosts中设置把关心的域名进行归类,其他所有域名归于Other Hosts:

3.3 包含和排除设置

可以通过Proxy->Recording Settings设置需要抓取哪些包、排除哪些包,比如我只想抓取when.coco.365rili.com域名下以.do为结尾的请求,以及www.365rili.com/index.html请求,可以设置如下:
这样就只会抓取能匹配这个规则的请求,同时可以在Exclude中设置需要排除的请求。
Include与主界面中的Filter的不同点是,不被包含的请求Charles不会抓取,而filter只是把不符合条件的不进行展示,Charles实际已经抓去了,把过滤条件去掉之后仍会显示。

3.4 限流设置

有时候开发中需要测试用户在网络情况比较的差的时候应用的表现情况,可以使用Charles限流设置,Proxy->Thorttle Settings中设置如下:
可以设置宽带、延迟等,并可以限制只对哪些hosts进行限流设置。

3.5 设置断点

有时候对于一些特殊请求在发往服务器之前想要修改一些参数,或者在服务器响应完成之后修改响应信息,此时可以使用Charles的断点功能:
当请求来的时候,Charles会停在断点处:
点击Edit Request可以对请求进行修改。对于Response类型的断点也类似。

3.6 No Caching Settings

可以在Tools->No Caching Settings中设置不缓存。
这样对于每个请求会在request中添加两个Header:
Pragma:no-cache
Cache-Control:no-cache
但是否起作用需要服务器对这两个Header支持才行。

3.7 DNS Spoofing Settings

一般的开发流程中,在上线之前都需要在测试环境中先行进行验证,而此时手机客户端请求的域名是不太容易改变的,可以通过设置dns方式把域名转发到测试机上,具体设置Tools->DNS Spoofing Settings
比如要把所有包含365rili.com的域名转到10.0.0.71的服务器上,可以设置如下:

3.8 Map Local Settings

对于前端开发来说,对html页面,js或者css等进行调整后需要配置线上的接口来查看最终样式,直接部署到生产环境可能会有风险,并且也不方便随时修改,可以使用Map Local Settings的方式,把线上的静态资源映射到本地:
这样当请求静态的html、js和css等资源的时候会使用本地的信息,方便及时看效果。

3.9 SSL

Charles不仅能够抓取http协议的包,也能抓取https协议的包,但是由于https是经过加密的,因为抓取的包中的内容是以密文方式展现的,通过配置Charles的SSL可以方便的以明文查看https协议传输的内容。在Proxy->Proxy Settings->SSL中设置如下:
对于PC端浏览器需要添加Charles的证书到信任列表,而对于手机端也需要下载Charles的证书charlesproxy.com/charles.crt,然后进行安装。
除了以上功能之外,Charles还支持Reverse Proxy, Port Forwarding端口转发,访问控制,cookie清除,Map Remote,黑名单等功能,且 charles不仅支持Http代理,也支持SOCK代理。这样就可以支持对所有协议的进行抓包。但是一般不长常用。

原文地址:http://tech.365rili.com/?p=57

转载于:https://www.cnblogs.com/yuanjunliang/articles/5167927.html

抓包工具Charles使用教程相关推荐

  1. 抓包工具 Charles使用教程---抓取接口数据

    1.抓包工具 Charles下载地址:https://xclient.info/s/charles.html#versions 2.使用教程:https://www.jianshu.com/p/fc2 ...

  2. 抓包工具 Charles使用教程

    1.抓包工具 Charles Charles下载地址 转载:使用教程 参考文献: Charles使用教程及Https乱码解决 Charles手机安装证书 Charles官网 我们先开宗明义,把问题解决 ...

  3. 【测试】 抓包工具 Charles 使用教程

    文章目录 简介 Charles 实现原理 安装Charles Charles 主界面 Charles 抓包教程 PC端抓包 移动端抓包 HTTPS 抓包 Charles 常用功能 重复请求 模拟弱网 ...

  4. 【爬虫】网页抓包工具--Charles的使用教程

    抓包工具Charles的使用教程 参考:https://zhubangbang.com/charlesproxy 如果您是您一次使用Charles,可能对下面的感兴趣. Charles破解版免费下载和 ...

  5. Mac抓包工具—— Charles相关总结

    初识此抓包工具是在15年,最早关于此的一篇创建时间为2015年11月9日,后面每次换工作陆陆续续在新公司电脑上安装过几次, 在此期间可谓是温故而知新,网上有很多现成的总结很到位的文章,我便偷了懒,没有 ...

  6. 抓包工具Charles(二)-移动端APP抓包(设置手机代理、安装证书)

    安装好Charles之后,还只能捕获电脑的接口请求 想要抓取移动设备的APP还需要设置代理.安装证书. 文章目录 一.抓包原理 二.手机设置网络代理 1. 查看电脑的IP地址(local IP add ...

  7. 抓包工具 charles 在线破解方法,支持4.2.6版本

    抓包工具 charles 在线破解方法 第一步:首先下载合适版本的charles进行安装 官方下载地址: https://www.charlesproxy.com/download/ 第二步:点击立即 ...

  8. 网络抓包工具Charles的介绍与使用

    在复杂的App开发过程中,我们会涉及各种复杂的网络操作,各种API的调用和数据接收.如果我们只是通过控制台来查看网络的输入输出,就会非常麻烦.在Mac上有一款非常优秀的网络抓包工具--Charles, ...

  9. 安利一个Mac下好用的抓包工具-Charles

    Charles:让天底下没有难抓的包. 前言 今天给大家推荐一个我所使用过的抓包工具中最好用的抓包工具-Charles(音译:查尔斯),它可以抓各端发起的网络请求,我主要用来抓移动设备上的请求,上次小 ...

  10. 抓包工具charles下载安装使用

    抓包工具charles下载安装(MAC版) 什么是charles? charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles ...

最新文章

  1. 我与前端之间不得不说的三天两夜之javaScript
  2. 恒位油杯故障原因_厂家详解干式真空泵故障分析与保养办法
  3. 2020 8月 每日花语
  4. HTML文件类型定义
  5. 【软件开发底层知识修炼】十五 快速学习GDB调试二 使用GDB进行断点调试
  6. linux共享数据,使用Linux共享数据对象
  7. 遗传算法c语言程序二次方程,遗传算法的c语言程序.doc
  8. aws服务器修改root密码,使用Xshell登录AWS EC2服务器设置root+密码方式登录
  9. 微信开发(六):微信卡券
  10. 微信名称中包含表情符号插入数据库出错
  11. 试题 历届试题 回文数字
  12. 技术债治理的三条原则
  13. Mac截图很大很怎么变小?
  14. 成功解决 -- flink.shaded.guava18.NumberFormatException: Not a version
  15. 创建一个简单OIO模式的socket服务端
  16. AD9361参数设置总结
  17. 银行资产业务和负债业务
  18. 彻底搞懂编码ASCII、Unicode、GBK 和 UTF8 、UTF-16、UTF-32编码方式(非常经典)
  19. Angular文件创建命令
  20. 2018年吉林大学软件学院软件工程专硕复试题目回忆

热门文章

  1. Linux C语言解析并显示.bmp格式图片
  2. android----AsyncHttpClient的get,post和图片上传
  3. python进阶(一)关联sql的算法操作
  4. 极限运动:街头极限单车,不只是牛逼!
  5. linux下开通ssh
  6. VM两个虚拟机之间的通讯测试
  7. matlab 2d pml,二维TM波,PML边界,matlab程序。但是仿真结果有问题,求高手。
  8. java 2 swing_Java Swing2 基本登錄框
  9. Spring在Web中的应用
  10. CacheCloud部署与群集申请流程测试