百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

开源免费——跨平台web调试代理工具whistle

yuyutoo 2024-10-11 23:57 8 浏览 0 评论

介绍

whistle(读音[?w?s?l],拼音[wēisǒu])基于Node实现的跨平台web调试代理工具,类似的工具有Windows平台上的Fiddler,主要用于查看、修改HTTP、HTTPS、Websocket的请求、响应,也可以作为HTTP代理服务器使用,不同于Fiddler通过断点修改请求响应的方式,whistle采用的是类似配置系统hosts的方式,一切操作都可以通过配置实现,支持域名、路径、正则表达式、通配符、通配路径等多种匹配方式,且可以通过Node模块扩展功能:






Github

打开Github后键入whistle关键字,第一个项目便是





基本功能

  • 查看 HTTP、HTTPS、HTTP2、WebSocket、TCP 请求响应数据
  • 修改 HTTP、HTTPS、HTTP2、WebSocket、TCP 请求响应数据修改请求 url、方法、头部、内容等修改响应状态码、头部、内容,并支持本地替换等修改 WebSocket 和 TCP 收发的帧数据
  • 设置 hosts(支持 IPv6)、http-proxy、https-proxy、socks
  • 作为HTTP代理或反向代理
  • 集成常用的 web 调试工具,如 weinre 和 log 等
  • 支持用 Node 编写插件扩展





  • 如若图片不清晰可以到Github上或者文档中查看

    whistle基本上覆盖了所有抓包调试代理可以实现的功能,且所有操作都可以通过类似配置hosts的方式实现。

    传统hosts的配置方式:

    # 普通模式
    127.0.0.1 xxx.xxx.xxx
    
    # 组合模式
    127.0.0.1 xxx.xxx.xxx xxx.xxx.qqq aaa.bbb.ccc 
    

    传统hosts配置方式为 ip pattern ... patternN,其中pattern只能为域名,ip为纯ip不能带端口

    whistle的配置方式不仅兼容上述传统hosts的配置方式,也支持丰富的匹配模式及操作功能,具体如下:

    # 默认模式
    pattern operatorURI
    
    # 组合模式
    pattern operatorURI operatorURI2 operatorURIN
    
    # 如果pattern和operatorURI不同时为普通url,两种位置可以调换
    operatorURI pattern
    
    # 组合模式
    operatorURI pattern pattern2 patternN
    
    

    其中:

    1、pattern 为匹配请求url的表达式,可以为:域名,路径,正则及通配符等等多种匹配方式,具体内容参见:匹配模式

    2、operatorURI 为对应的操作,由操作协议+操作值组成:operatorURI = opProtocol://opValue opProtocol(操作协议) 对应某类操作,具体内容参见:协议列表opValue(操作值) 对应具体操作的参数值

    3、pattern 和 operatorURI 不同时为普通url时位置可以调换,且支持组合模式

    安装启动

    whistle安装过程需要以下步骤(缺一不可):

    1. 安装Node
    2. 安装whistle
    3. 启动whistle
    4. 配置代理
    5. 安装根证书

    上述步骤的详细操作分别参见如下文档:

    1. 安装启动whistle
    2. 安装whistle根证书

    安装成功后,可以通过如下命令查看whistle的所有命令行操作:

    w2 --help

    启动、停止、重启whistle的命令行命令如下:

    w2 start
    w2 stop
    w2 restart

    更新whistle只需重新安装下whistle即可

    如何使用可以查看Github上的文档或者官方Gitbook的文档

    总结

    相比一些收费的代理调试工具,whistle具备开源免费的优点,enjoy it!

    相关推荐

    对volatile,synchronized,AQS的加锁解锁原理的一些理解

    一、为什么要加锁,要实现同步多线程编程中,有可能会出现多个线程同时访问同一个共享、可变资源的情况,这个资源我们称之其为临界资源;这种资源可能是:对象、变量、文件等。...

    注意,不能错过的CAS+volatile实现同步代码块

    前言:最近看到有人说可以使用CAS+volatile实现同步代码块。心想,确实是可以实现的呀!因为AbstractQueuedSynchronizer(简称AQS)内部就是通过CAS+...

    面试并发volatile关键字时,我们应该具备哪些谈资?

    提前发现更多精彩内容,请访问https://dayarch.top/提前发现更多精彩内容,请访问https://dayarch.top/提前发现更多精彩内容,请访问https://dayarch...

    无锁同步-JAVA之Volatile、Atomic和CAS

    1、概要本文是无锁同步系列文章的第二篇,主要探讨JAVA中的原子操作,以及如何进行无锁同步。关于JAVA中的原子操作,我们很容易想到的是Volatile变量、java.util.concurrent....

    C/C++面试题(二):std::atomic与volatile

    volatile是C/C++中的一个关键字,用于告知编译器某个变量的值可能会在程序的控制之外被意外修改(例如被硬件、中断服务程序、多线程环境或其他外部代理)。为了防止编译器对代码进行某些可能破坏...

    VOCs(Volatile Organic Compounds)挥发性有机化合物及测试方法

    经常看到一些三防漆、涂料、油漆类产品的介绍中提到VOC、VOCs等概念,那么什么是VOC、VOCs和TVOC,VOCs主要包括哪些物质?VOCs的来源有哪些?VOCs的危害及国家标准是什么?一、V...

    对volatile 及happen—before的理解

    happen—before规则介绍Java...

    这一篇我们来了解Synchronized、Volatile、Final关键字

    题外话:蓝银王觉醒了!!--来自于一个斗罗大陆动漫爱好者(鹅,打钱!)湿兄这两天回家了,办了点大事,回来的时候我弟弟还舍不得我,哭着不愿意让我回京(我弟还是小学),我也心里很不舍,但是还是要回京奋斗...

    关于 Java 关键字 volatile 的总结

    1什么是volatilevolatile是Java的一个关键字,它提供了一种轻量级的同步机制。相比于重量级锁synchronized,volatile更为轻量级,因为它不会引起线程上下文...

    大白话聊聊Java并发面试问题之volatile到底是什么?

    用最简单的大白话,加上多张图给大家说一下,volatile到底是什么?...

    为什么要有volatile关键字(volatile 关键字为什么不能保证原子性)

    在嵌入式编程和多线程编程中,我们常会见到volatile关键字声明的变量。下面说一下volatile关键字的作用:1.保持变量内存可见简而言之就是用volatile声明的变量会告诉编译器和处理器,这个...

    Java的volatile到底怎么理解?(java volatitle)

    我们都知道,在Java中有很多的关键字,比如synchronize比如volatile,这些都是一些比较关键的,还有final,今天我们就来聊一下这个volatile因为这个vo...

    Java多线程编程中的volatile关键字:解密神秘的共享内存

    Java多线程编程中的volatile关键字:解密神秘的共享内存在Java多线程编程的世界里,volatile关键字就像一位低调却至关重要的守护者。它默默无闻地站岗放哨,确保多个线程之间能够正确地共享...

    你了解volatile关键字的作用吗?(关键字volatile有什么含意?并举出三个不同的例子?)

    【死记硬背】volatile关键字主要用于保持内存的变量可见性和禁止重排序。变量可见性:当一个线程改变了变量的值,那么新的值对于其他线程也是可以立即获取到的。禁止重排序:...

    谈谈你对volatile 关键字作用和原理的理解

    一位6年工作经验的小伙伴,在某里二面的时候被问到“volatile”关键字。然后,就没有然后了…同样,还有一位4年的小伙伴,去某团面试也被问到“volatile关键字“。然后,也没有然后了…...

    取消回复欢迎 发表评论: