| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> charles -> 正文阅读 |
|
[网络协议]charles |
简介及原理 Charles是一个能够查看机器和网络之间所有http和ssl/https流量的HTTP代理/HTTP监视器/反向代理/包括请求,响应和HTTP头(包含cookie和缓存信息),charles proxy的基本功能以我们的应用程序或网站与为其提供信息的后端服务之间的HTTP请求和响应中心 Charles工作原因 在移动应用中触发一些操作发出某些请求,通过charles作为中间代理发送给服务端,服务端处理创建响应数据,再由charles作为中转返回给应用程序。即:charles对客户端伪装成服务端,对于服务端伪装成客户端 安装与破解 在官网上下载charles安装包,成功安装之后不打开charles 打开Charles,help-->Registered-->输入Registered Name和License Key(生成链接生成的) 获取抓包数据
? 3.查看自己电脑的IP地址 4.第四步:手机连接到该电脑上 抓取https请求按上述步骤操作好了,发现抓取到的https请求前面都是灰色的小锁头,点开一个查看,如图:(大概意思就是还没有为此主机启动ssl代理)
主页面介绍手机连上代理后,在手机上做过一些操作后,charles页面会出现很多内容,这些条条框框到底是什么东西呢?如图: 常用功能过滤请求 ①通过Sequence--Filter进行临时过滤:在 Filter 栏中输入想要过滤出来的关键字,比如只想查看包含关键字:bar的请求,只需要在 Filter 栏中输入关键字:bar即可;当然也支持通配符。 ②在Sequence中,选择要过滤的请求,右键–Focus,然后勾选Focused ③在Structure中选择要过滤的请求,右键--Focus,其他请求就会被放到other Host的文件夹里面 ④直接在Structure下方的Filter中输入要过滤的域名 ⑤Proxy--Recording?Settings–Include(只抓取所设置的请求,用于经常性的过滤) 修改请求及响应 有些时候我们想让服务器返回一些指定的内容,方便我们调试一些特殊情况。例如列表页面为空的情况,数据异常的情况,部分耗时的网络请求超时的情况等。如果没有 Charles,要服务器配合构造相应的数据显得会比较麻烦。但是使用charles就比较容易实现。 Charles 提供的Map功能、Rewrite功能以及Breakpoints功能,都可以修改服务器返回的内容。这三者在功能上的差异是: ①Map 功能适合长期地将某一些请求重定向到另一个网络地址或本地文件。 ②Rewrite 功能适合对网络请求进行一些正则替换。 ③Breakpoints 功能适合做一些临时性的修改。 Charles的Map功能分Map Remote和Map Local两种:Map Remote是将指定的网络请求重定向到另一个网址请求地址,Map Local是将指定的网络请求重定向到本地文件。 Map Remote功能 对于Map Remote功能,我们需要分别填写网络重定向的源地址和目的地址,对于不需要限制的条件,可以留空。下图是一个示例,将所有setting.com(线上获取云控的域名)的请求重定向到了setting.test.com(测试环境获取云控的域名)。 Map Local功能? 对于Map Local功能,需要填写重定向的源地址和本地的目标文件。对于有一些复杂的网络请求结果,我们可以先使用?Charles?提供的“Save Response…”功能,将请求结果保存到本地,然后稍加修改,成为我们的目标映射文件。将一个指定的网络请求通过?Map Local?功能映射到了本地的一个经过修改的文件中。? Rewrite功能? 适合对某一类网络请求的header、host、url、path、query param、response status和body进行匹配和正则替换,以达到修改结果的目的。? 选择要修改的接口,右键--copy url? 点击菜单栏中的Tools--Rewrite… 在Rewrite Setting中,勾选并按图操作,在第三步点击了【Add】后,弹出Edit Location弹出,在Host文本框中,粘贴刚刚复制的URL,然后将鼠标定位到Path,可以自动将URL中的内容分解到各个文本框内~ Breakpoints?功能? 上面提供的?Rewrite?功能最适合做批量和长期的替换,但是如果只想临时修改一次网络请求,最好使用?Breakpoints?功能。此功能类似在?Xcode?中设置的断点一样,当指定的网络请求发生时,Charles会截获该请求,这时就可以在?Charles?中临时修改网络的请求和响应内容了。? 选中要打断点的请求,右键--Breakpoints? 在菜单栏中选择Proxy--Breakpoint Settings… 弹出设置断点的弹窗,双击已经加好的请求,弹出Edit Breakpoint对话框,如果要修改请求就勾选Request,如果要修改响应就勾选Response。 保存上图修改后,重新进入酒吧(请求bar/list接口),出现断点页面,选择Edit Response和JSON Text,修改响应值后点击Execute即可 注意:使用?Breakpoints?功能将网络请求截获并修改的过程中,整个网络请求的计时并不会暂停,所以长时间的暂停可能导致客户端请求超时。? 模拟网络环境? Charles中的【Throttle Settings】模拟网络环境,可选择模拟的网络环境,选项比Fidder多很多,也可以自定义,最人性的是可以对指定的url进行网络环境模拟。? 菜单栏中Proxy--Throttle settings,打开网络设置页面,首先勾选Enable Throttling,可以直接在Throttling preset中选择默认的网络配置,也可以自己填写各项参数值。? 如果测试中只需要只对部分域名的请求进行网络控制的话,勾选only for selected hosts选项,点击Add按钮添加hosts: ?? |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 11:55:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |