分享

【腾讯开源】LivePool:基于Node.js的跨平台Web抓包替换工具 | CODE

 集微笔记 2014-07-18

LivePool 是一个基于 NodeJS,类似 Fiddler 能够支持抓包和本地替换的 Web 开发调试工具,是 Tencent AlloyTeam 在开发实践过程总结出的一套的便捷的工作流以及调试方案。

背景

在 Windows 平台上,Fiddler 作为一款非常便捷好用的 Web 调试工具,深受广大开发者的喜爱。而在 Mac 上,类似的工具,比如 Charles 等,收费并且功能非常有限,着实让很多陆续把工作环境迁移到 Mac 的小伙伴刚到非常的不方便。难道真的要在 Mac 上装个 Windows 或者开虚拟机跑 Fiddler 吗?

Alloyteam 其实很早就开始实践跨平台的抓包和替换工具,基于 QT 的 Rythem,功能上基本能满足要求,但是由于后续没有熟悉 QT 平台的人力投入,没有持续更新和支持。出于折腾精神,决定用比较熟悉的 NodeJS 进行开发一款类似的代理替换工具,并尝试借助 Web 便捷快速的 UI 能力搭建更美观强大的管理界面。

特性

  • 基于 NodeJS, 跨平台
  • 便捷的 UI 界面,跟 Fiddler 类似,降低学习成本
  • 支持 http 抓包和本地替换调试,Https/WebSockets 直接代理转发,暂不支持本地替换
  • 基于项目的替换规则管理,方便高效,规则支持拖曳排序
  • 支持基于请求路径的本地文件替换,支持基于请求路径的路由转发(host 配置)
  • 替换类型支持:文件/文件夹替换,combo合并替换,qzmin替换(批量combo),delay延时等
  • 支持自动设置系统代理
  • 支持规则过滤,只显示关注的请求
  • 提供构建 http get/post 请求界面,方便接口调试
  • 特色功能:模拟gprs/3g等低网速(Mac only)
  • 特色功能:支持离线站点到本地,并自动代码格式化

主要功能

1. 抓包分析

实现原理:通过拦截系统 web 代理将浏览器或者其他应用的请求转发到 Livepool,Livepool 通过拦截获取 http 请求的相关信息,比如 http 头,内容等,并将结果缓存下来,便于后面进行分析。

2. 本地替换和规则管理

实现原理:livepool 拦截到请求后,对请求的路径进行分析,将命中规则的请求进行适当处理,替换为对应内容。目前替换类型支持:文件/文件夹替换,combo合并替换,qzmin替换(批量combo),delay延时等。提供便捷的基于项目的规则管理。

3. 构建调试请求

便捷的模拟http请求,方便接口调试

4. 模拟低网速【mac only】

  • GPRS: 48kbit/s
  • Edge: 64kbit/s
  • 3g: 348kbit/s
  • ADSL: 768kbit/s
  • WIFI: 2048kbit/s

5. 离线站点

将站点内容离线到本地,并自动代码格式化,便于查看

站点保存到当前文件夹 Sites 下

更多内容:



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多