Skip to content

cssfirefly/whistle

This branch is 7488 commits behind avwo/whistle:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ea8c004 · Apr 9, 2017
Jan 13, 2017
Apr 7, 2017
Apr 9, 2017
Apr 9, 2017
Apr 1, 2017
Feb 26, 2017
Oct 28, 2016
Nov 21, 2016
Aug 18, 2016
Jan 17, 2017
Apr 9, 2017
Mar 13, 2015
Apr 9, 2017
Oct 28, 2016
Mar 9, 2017
Apr 9, 2017

Repository files navigation

whistle logo

whistle

node version build status Test coverage npm download NPM count David deps License

当前whistle的最新版本为v1.3.18,为确保使用whistle所有功能,请及时更新whistle

基于性能及http请求稳定性考虑,建议安装最新版的Node

清空Network的两种方式:双击右上角的Network菜单按钮,或hover到Network菜单按钮点击下拉菜单的Remove All Sessions

whistle是跨平台的web调试代理工具,功能类似Windows平台上的Fiddler,主要用于查看或修改HTTP、HTTPS、Websocket的请求或响应或作为HTTP代理服务器,不同于Fiddler通过断点修改请求响应的方式,whistle采用的是类似配置系统hosts的方式,通过配置规则修改请求响应,并支持规则分组及通过域名、路径、正则、精确匹配(精确匹配需v1.1.2及以上版本才支持,老版本可以用正则实现)四种匹配方式(系统的hosts配置只支持域名匹配),特别针对终端调试提供了weinrelog等功能,且支持通过Node模块扩展功能,具体实现过程请参见whistle帮助文档

安装使用whistle请参见whistle帮助文档

基本功能

基本功能

完整功能请参见whistle帮助文档

配置模式

传统hosts的配置模式:

# 单个host
ip hostname

# 组合host
ip hostname1 hostname2 ... hostnameN

# 例如
127.0.0.1 www.example.com
127.0.0.1 a.example.com b.example.com c.example.com

whistle的配置模式:

# 单个操作
pattern operator-uri
# 如果pattern和operator-uri不同时为域名或路径的一种组合,位置可以调换
operator-uri pattern

# 组合模式
pattern operator-uri1 operator-uri2 ... operator-uriN
# pattern1和operator-uri不同时为域名或路径的一种组合,可以如下配置
operator-uri pattern1 pattern2 ... patternN

其中,pattern可以为:

  1. 域名:www.test.com(所有该域名下的请求都会匹配operator-uri)
  2. 路径:http://www.test.com/xxx(http://www.test.com/xxx及其子路径的请求都会匹配operator-uri),或不加协议protocol://www.test.com/xxx,protocol可以为http、https、ws、wss(http://www.test.com/xxx及其子路径的请求都会匹配operator-uri)
  3. 正则:/^https?:\/\/([^\/]+)\/xxx/(http(s)://host:port/xxx及其子路径的请求都会匹配operator-uri,且在operator-uri中可以通过$1, $2, ..., $9获取url里面的子匹配)
  4. 精确:在原来路径前面加精确匹配符$,即:$url(可以带协议$http://www.test.com/xxx,也可以不带协议$www.test.com)

详细内容请参见配置模式匹配方式

operator-uri由上述基本功能抽象成的形如protocol://ruleValue的URI,whistle会根据匹配到的operator-uri的protocolruleValue修改请求或响应,具体实现过程请参见whistle帮助文档

例如:

# 修改www.example.com的响应cors
www.example.com resCors://*
# 或
resCors://* www.example.com

# 同时修改多个自定域名或路径
resCors://* /example\.com/ a.test.com b.test.com
# 修改www.test.com的带端口host、referer和响应的cors
www.test.com 127.0.0.1:8080 referer://http://www.example.com resCors://*

完整功能参见whistle帮助文档

Network

Network

Rules

Rules

Values

Values

完整功能请参见whistle帮助文档

License

MIT

About

HTTP, HTTPS, Websocket debugging proxy tool

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 99.5%
  • HTML 0.5%