摘要:采用自集成式HTTP代理方案,通过代理服务器实现网络请求的高速缓存和缓存优化,提高网络访问效率和响应速度。该方案具备灵活性和可扩展性,可轻松集成到现有网络架构中,适用于各种规模的网站和服务。通过代理服务器,可以实现对用户请求的监控和管理,提高网络安全性和数据隐私保护。该方案还能有效减少服务器负载,降低运营成本。
大多数程序员都会使用抓包代理工具,有没有一种集成在Web应用中的代理工具,可以带来不同的体验呢?
介绍一种明显区别于传统代理工具的特性:
1、零安装、零配置,Web点击即用、APP扫码即用,不同于传统的开盖即食,这里是直接喂到嘴里。
2、分享URL链接(或二维码),即可远程调试HTTP协助他人或调试移动设备。
3、用户可远程相互共享代理配置,无需手动导入导出。
以一个场景为例:
1、你是前端开发,当后端接口还没准备好(或有Bug时),产品或设计师想体验效果。
2、传统办法,你配好接口Mock,让产品使用你的设备体验。
3、当前方案,你配好接口Mock,发一个URL链接给产品即可远程体验。
它的原理是将代理服务与应用(Web网页或APP)集成,从而大幅降低用户(研测产运)的使用成本。
应用集成代理服务对应的SDK,自动转发请求到代理服务。
传统代理工具的主要成本:
1、下载安装代理程序,甚至收费。
2、配置系统代理(移动端更烦)、HTTPS证书。
3、同事之间共享代理规则(手动导入导出文件)。
这些成本带来了各种烦恼,也将非技术岗位拒之门外。
中午去吃饭时,手机突然断网,原来是刚刚网络调试,配置了系统代理!
笔者曾尝试过多款代理工具,始终有不满意的地方,多年前,在自己的开源项目Erra中探索新的代理方案,仍然不满意,遂放弃。
现将Erra的代理服务与工作中的应用集成,借鉴whistle的规则,再重新实现UI交互,觉得尚可。
以下对比笔者曾长期使用过的代理工具:
Charles | LightProxy | FF-Proxy | |
下载安装APP | 是 | 是 | 否 |
配置操作系统代理 | 是 | 是 | 否 |
安装信任HTTPS证书 | 是 | 是 | 否 |
Mock方式 | UI | 文本规则 | UI + 文本规则 |
Mock规则共享 | 导出规则文件 | 复制规则文本 | 在线分享 |
远程调试 | 否 | 否 | 是 |
通用HTTP请求代理 | 是 | 是 | 否 |
安装部署服务 | 否 | 否 | 是 |
该方案改进了工作中高频对特定应用(公司产品的域名、APP)进行网络调试的体验和效率,该方案是一个增强型能力,与通用代理工具(Charles、LightProxy等)没有任何冲突,不会影响习惯使用通用代理工具的同学,接下来介绍该方案的技术实现思路。
方案原理概览:
<img src="https://img-blog.csdnimg.cn/img_convert/511fa609a6ef4645b74f7dce62738b26.webp" alt="图片" width="691" height="396">
分为四个部分:与应用集成、代理服务提供网络调试界面(UI)、代理服务记录请求并同步到UI界面、代理服务在转发请求前、收到响应后按Mock规则篡改请求内容。
应用集成:是当前方案区别与代理工具的根本所在,也是能实现零安装、零配置便捷性的原因,集成是将代理服务对应的SDK注入到业务系统(网页或APP)中,SDK会拦截并转发请求到代理服务,集成SDK的方式有以下几种…… 拦截转发请求:向页面注入SDK(ff-sdk.js)后,根据URL Query参数决定是否开启拦截转发请求。…… HTTP请求变换协议:SDK拦截HTTP请求转到代理服务,然后还原再转到目标服务。…… 代理服务与UI交互:通过WebSocket保持通信。…… 抓包与Mock规则:远程调试的实现方式…… 数据存储:数据存储在浏览器的indexedDB中…… 相对传统代理的缺点…… 该方案的原理是将代理服务与应用集成……所以实施的前提是团队规模足够大…… ……希望对你有所帮助!
还没有评论,来说两句吧...