更多干货文章,更多最新文章,欢迎到作者主博客 菜鸟厚非

一、简介

今天介绍一下 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请求的更多相关文章

  1. Iptables详解七层过滤

    <Iptables详解七层过滤> 一.防火墙简介 防火墙其实就是一个加固主机或网络安全的一个设备或者软件而已,通过防火墙可以隔离风险区域与安全区域的连接,同时不会妨碍风险区域的访问.当然需 ...

  2. 详解JavaScript数组过滤相同元素的5种方法

    详解JavaScript数组过滤相同元素的5种方法:https://www.jb51.net/article/114490.htm

  3. Asp.net页面生命周期详解任我行(3)-服务器处理请求详细过程

    前言 百度了一下才知道,传智的邹老师桃李满天下呀,我也是邹老师的粉丝,最开始学习页面生命周期的时候也是看了邹老师的视频. 本人是参考了以下前辈的作品,本文中也参合了本人心得,绝非有意盗版,旨在传播,最 ...

  4. HTTP协议详解(一)——初识HTTP及请求

    何为HTTP(超文本传输协议)? 协议,即约定俗成的规范.HTTP则是浏览器与服务器之间交流的一种规范.HTTP基于TCP/IP协议,属于应用层的协议. 为什么Web应用不使用TCP或者UDP协议呢? ...

  5. 04JavaIO详解_DataInputStream(属于过滤l流)

    DataInputStream这个类是二进制读写的.并且 是过滤流,会一层套一层的.这里就是装饰者模式. public class DataStream1 { public static void m ...

  6. postman(六):详解在Pre-request Script中如何执行请求

    上一篇借着如何在不同接口之间传递数据,简单说了下在postman编写脚本发送请求,这里再详细介绍一下如何在Pre-request Script和Tests标签中编写脚本.因为我目前研究的也不是很深,对 ...

  7. 二十:职责链模式详解(类似于spring的hangler处理请求)

    定义:为了避免请求的发送者和接收者之间的耦合关系,使多个接受对象都有机会处理请求.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止. “看这个定义,就是将一堆可以处理请求的对象连 ...

  8. postman(二):详解在Pre-request Script中如何执行请求

    一.这里以Pre-request Script标签来介绍 postman提供了postman提供了一个"Send a request"代码段,他是已经封装好的发送请求的方法 一个& ...

  9. ssh转发代理:ssh-agent用法详解

    SSH系列文章: SSH基础:SSH和SSH服务 SSH转发代理:ssh-agent用法详解 SSH隧道:端口转发功能详解 使用ssh-agent之前 使用ssh公钥认证的方式可以免去ssh客户端(如 ...

随机推荐

  1. springBoot 多配置文件切换之profile

    说明: 我们平时工作,有开发环境,和生产环境,利用springboot的多profile配置,可以很轻松切换配置. 实现方式1(推荐): 配置文件命名遵循:application-{开发模式}.pro ...

  2. springDataRedis忽略实体指定的属性

    如果是通过 RedisRepository定义的实体,可能存在想要忽略的属性,那么,就可以 使用 org.springframework.data.annotation.Transient 注解,就可 ...

  3. 什么是bean装配?

    装配,或bean 装配是指在Spring 容器中把bean组装到一起,前提是容器需要知道bean的依赖关系,如何通过依赖注入来把它们装配到一起.

  4. Statement 和 PreparedStatement 有什么区别?哪个性 能更好?

    与 Statement 相比,①PreparedStatement 接口代表预编译的语句,它主要的优 势在于可以减少 SQL 的编译错误并增加 SQL 的安全性(减少 SQL 注射攻击的可 能性):② ...

  5. 面试问题之C++语言:Overload、Override及Overwirte的区别

    Overload(重载):在C++程序中,可以将语义.功能相似的几个函数用同一个名字表示,但参数或返回值不同(包括类型.顺序不同),即函数重载. 特点: (1)相同的范围(在同一个类中) (2)函数名 ...

  6. 创建Maven web工程

    ---恢复内容开始--- 第一步,启动Eclipse,依次打开菜单[File][New][Other] 找到目录Maven,选择Maven Project, 选择一个Archetype.这里创建Web ...

  7. Python - list、tuple类型

  8. Mybatis-Plus 如何实现一对多关系 举例 用户与角色

    Mybatis-Plus 一对多Mybatis-Plus 不写一句sql语句实现一对多 首先来看效果 Mysql数据库 用户表 角色表 用户与角色的中间表 中间表如下 将三张表通过Mybatis Pl ...

  9. (stm32f103学习总结)—RTC独立定时器—实时时钟实验

    一.STM32F1 RTC介绍 1.1 RTC简介 STM32 的实时时钟( RTC)是一个独立的定时器. STM32 的 RTC 模 块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的 ...

  10. 修改Menu_item的字体属性

    前面一直在找 MenuItem的文字颜色的设置.我发现API中只有背景颜色的设置... 所以找到下面的方法.在OverFlow上看到的.在onCreateOptionsMenu中覆写一下, 使Menu ...