详解Fiddler Classic过滤、重放、转发HTTP请求
更多干货文章,更多最新文章,欢迎到作者主博客 菜鸟厚非
一、简介
今天介绍一下 Fiddler Classic 对 HTPP 的过滤、重放、转发操作,这在开发中,尤其在微服务中调试中是经常用到的功能,可以大大提高我们的调试效率。
二、转发 HTTP 请求
转发 HTTP 请求,是指当一个请求 A 经过 Fiddler,转发到请求 B 的功能。Fiddler 设置请求的转发有两种方式:一种是经过脚本,另一种直接在 UI 设置,而常用的是脚本方式。
例如:请求的地址是 192.168.1.10/Get/Data,想把他转到 localhost:5000/Get/Data,通过这个案例进行讲解
2.1 FiddlerScript
1 . 点击 Fiddler 工具栏的 FiddlerScript 菜单,可以进入脚本编辑页面
2 . 在打开的 Fiddler ScriptEditor 窗口中,使用 Ctrl+F 找到 OnBeforeRequest 方法
3 . 在 OnBeforeRequest 方法的末尾,添加下面代码,主要是对 url 的替换。如下:
if (oSession.url.IndexOf('192.168.1.10/Get/Data/')>-1){
oSession.url =oSession.url.Replace('192.168.1.10/Get/Data/','localhost:5000/');
}

三、重放 HTTP 请求
重放 HTTP 请求,使用的是 Fiddler 的 Composer 功能。 可以看做是在 Fiddler 中集成了一个 Postman 功能,我们来看看此工具如何使用。
3.1 捕捉请求
在浏览器范围 一下 http://192.168.88.146:8082/hello ,这是我这内网环境的 api,可根据自己的实际的 api 进行访问

然后,看 Fiddler Classic ,可以看到,捕捉到了刚刚访问的连接

3.2 发包
首先点击 “Composer ”,然后讲左边的请求拖到右边,再点击 execute 即可重新发出一个请求

四、过滤 HTTP 请求
Fiddler Classic 开启捕捉后,会监听所有的请求,在大多数情况下,我们只需要监听部分请求,此时可以使用 Filters 功能去控制,设置好了后一定要点击 Actions,才能生效

4.1 指定显示
指定显示,是通过指定的域名白名单列表,捕捉列表只展示再白名单内的。首先点击 Filters ,勾选 Use Filters,再选择 show only the flowing hosts ,那后再输入指定的域名(192.168.88.146;www.baidu.com;*.bing.com)

这里我们指定了 192.168.88.146;www.baidu.com;*.bing.com 三个域名,其中 *.bing.com 是模糊匹配。
4.2 排查显示
排查显示与指定显示恰恰相反,只需选择 hide the flowing hosts 即可,其他操作一指定显示一致。如下:

五、扩展
5.1 显示 IP
首先打开 fiddler 软件,按 ctr+r 或者 菜单 Rules–Customize Rules,找到 static function Main(),添加显示 IP 脚本。如下:
FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");

详解Fiddler Classic过滤、重放、转发HTTP请求的更多相关文章
- Iptables详解七层过滤
<Iptables详解七层过滤> 一.防火墙简介 防火墙其实就是一个加固主机或网络安全的一个设备或者软件而已,通过防火墙可以隔离风险区域与安全区域的连接,同时不会妨碍风险区域的访问.当然需 ...
- 详解JavaScript数组过滤相同元素的5种方法
详解JavaScript数组过滤相同元素的5种方法:https://www.jb51.net/article/114490.htm
- Asp.net页面生命周期详解任我行(3)-服务器处理请求详细过程
前言 百度了一下才知道,传智的邹老师桃李满天下呀,我也是邹老师的粉丝,最开始学习页面生命周期的时候也是看了邹老师的视频. 本人是参考了以下前辈的作品,本文中也参合了本人心得,绝非有意盗版,旨在传播,最 ...
- HTTP协议详解(一)——初识HTTP及请求
何为HTTP(超文本传输协议)? 协议,即约定俗成的规范.HTTP则是浏览器与服务器之间交流的一种规范.HTTP基于TCP/IP协议,属于应用层的协议. 为什么Web应用不使用TCP或者UDP协议呢? ...
- 04JavaIO详解_DataInputStream(属于过滤l流)
DataInputStream这个类是二进制读写的.并且 是过滤流,会一层套一层的.这里就是装饰者模式. public class DataStream1 { public static void m ...
- postman(六):详解在Pre-request Script中如何执行请求
上一篇借着如何在不同接口之间传递数据,简单说了下在postman编写脚本发送请求,这里再详细介绍一下如何在Pre-request Script和Tests标签中编写脚本.因为我目前研究的也不是很深,对 ...
- 二十:职责链模式详解(类似于spring的hangler处理请求)
定义:为了避免请求的发送者和接收者之间的耦合关系,使多个接受对象都有机会处理请求.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止. “看这个定义,就是将一堆可以处理请求的对象连 ...
- postman(二):详解在Pre-request Script中如何执行请求
一.这里以Pre-request Script标签来介绍 postman提供了postman提供了一个"Send a request"代码段,他是已经封装好的发送请求的方法 一个& ...
- ssh转发代理:ssh-agent用法详解
SSH系列文章: SSH基础:SSH和SSH服务 SSH转发代理:ssh-agent用法详解 SSH隧道:端口转发功能详解 使用ssh-agent之前 使用ssh公钥认证的方式可以免去ssh客户端(如 ...
随机推荐
- read,readline,readlines的特点与区别
1.read 读取全部文件 with open("test.text", "r",encoding='utf8') as f: print(f.read()) ...
- 基本类型数组转List
基本类型数组转List 小数 double[] src = {1.1,2.1,3.1}; List<Double> list = Arrays.stream( src ).boxed(). ...
- IMWeb前端提升营七天学习总结
写在前面 5月24到30这7天,IMWeb前端提升营,腾讯大佬们分享个人经验,使出各种前端方面的大招.从中学习了很多前端方面的知识,也get到了前端学习的方法论,还有一些算法知识等等. 现将总结如下: ...
- Emscripten教程之代码可移植性与限制(一)
Emscripten教程之代码可移植性与限制(一) 翻译:云荒杯倾本文是Emscripten-WebAssembly专栏系列文章之一,更多文章请查看专栏.也可以去作者的博客阅读文章.欢迎加入Wasm和 ...
- Spark入门之idea编写Scala脚本
一.安装Scala插件 1.File->Settings 2.Plugins->Msrketplace->搜索Scala并安装 (或者自己下载合适的scala版本,教程:自己给ide ...
- 【uniapp 开发】uni-app 中如何打开外部应用
我们在开发 App 应用中,经常会遇到打开第三方程序的场景,比如打开手机淘宝.通过第三方浏览器打开一个 url 等等. App不像网页可以使用http超链接互相跳转,但手机os设计了scheme机制, ...
- 下载jar包方法
第一种通用下载jar包方法 apache官网下载jar包地址:http://ftp.cuhk.edu.hk/pub/packages/apache.org/ 第二种通用下载jar包方法 mave ...
- [前端学习]vue的指令学习记录 vu-if | text | for | on | model | bind | pre
vue的指令学习记录 vue-if | text | for | on | model - 目录 vue的指令学习记录 vue-if | text | for | on | model ... 预备 ...
- C语言之:结构体动态分配内存(利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号、姓名和三门课(高数、物理和英语 )的成绩和平均分(整型)。)
题目内容: 利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号.姓名和三门课(高数.物理和英语 )的成绩和平均分(整型). 编写程序,从键盘输入学生的人数,然后依次输入每个学生的学号. ...
- IDEA小技巧:Debug条件断点
今天给大家分享一个IDEA调试过程中的一个小技巧. 先来说说场景,你有没有碰到类似的情况,一个循环结构里,中间某一个情况可能会出错.比如下面的代码结果中,可能执行到第27次的时候,会出现问题. for ...