Fiddler 初学者工具使用

Fiddler是一款强大的HTTP代理工具,用于捕获和分析客户端与服务器间的网络通信。本文详细介绍了Fiddler的工作原理、下载安装、代理配置、手机连接、工具栏功能、检查器解析、自动响应器、Composer测试接口以及过滤器的使用。通过设置断点、修改请求数据,开发者可以深入理解HTTP交互过程,进行调试和性能优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概述

Fiddler是一款免费且功能强大的数据包抓取软件。它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视、设置断点、甚至修改输入输出数据等功能。fiddler包含了一个强大的基于事件脚本的子系统,并且能够使用.net框架语言扩展。

二、Fiddler工作原理

Fiddler是位于客户端和服务器端之间的HTTP代理, 它能够记录客户端和服务器之间的所有 HTTP(S)请求,可以针对特定的HTTP(S)请求,分析网络传输的数据,还可以设置断点、修改请求的数据和服务器返回的数据。
Fiddler在浏览器与服务器之间建立一个代理服务器,Fiddler工作于七层中的应用层,能够捕获通过的HTTP(S)请求。Fiddler启动后会自动将代理服务器设置成本机,默认端口为8888。Fiddler不仅能记录PC上浏览器的网络请求数据,还可以记录同一网络中的其他设备的HTTP(S)请求数据。数据传递流程大致如下:
在这里插入图片描述

  1. 客户端像WEB服务器发送HTTP(S)请求时,请求会先经过代理Fiddler代理服务器。
  2. Fiddler代理服务器截取客户端的请求报文,再转发到WEB服务器,转发之前可以做一些请求报文参数修改的操作。
  3. WEB服务器处理完请求以后返回响应报文,Fiddler代理服务器会截取WEB服务器的响应报文。
  4. Fiddler处理完响应报文后再返回给客户端。

三、下载安装与配置

1.可以到官网下载Fiddler免费安装包:点击下载
2.下载安装Fiddler后,安装插件FiddlerCertmaker。
3.Fiddler基本配置
如果只是需要监听本机浏览器HTTP数据包的话不需要做任何额外配置,打开Fiddler即可直接使用。一般我们需要监听远程终端设备的网络请求,需要做以下配置。打开Fiddler,在菜单栏中选择Tools->Options->Connections。输入监听端口(默认是8888),选择Allow remotecomputers to connect,点击确认然后重启Fiddler。
在这里插入图片描述

四、手机连接代理

1.http请求
打开手机网络设置,选择跟Fiddler主机在统一网络,打开wifi设置界面,进入wifi的高级设置(不同手机设置不一样,有一些手机长按选中的wifi名称可以出来,有一些手机是点击wifi名称后面的按钮,自己尝试)。Fiddler本身就是代理服务器,在wifi高级设置中的代理栏下面选择手动设置,设置输入Fiddler主机的IP地址(上一步显示的IP)和监听端口号(前面默认8888那个),点击确认。

在这里插入图片描述
这些配置按成以后,你在APP中进行有网络请求的操作,即可在Fiddler中看到。
在这里插入图片描述

在右边的Inspectors窗口中可以看到这个请求的请求报文和响应报文信息。
以上配置只能监听到HTTP报文,对于HTTPS报文无法显示内容,还需要做其他配置。

2.https请求
前面也讲了,HTTPS数据报文传输的时候涉及到证书及数据加密的问题,所以Fiddler需要抓取HTTPS报文的话还需要做其他配置。
首先还是打开Fiddler配置:Tools->Options->HTTPS:
在这里插入图片描述

勾选Capture HTTPS CONNECTS和Decrypt HTTPS traffic选项,如果只是想抓取本机或者远程终端的数据报文,可以在…from all processes这个下拉框中选择。这里还有一点需要注意的就是,低版本的Fiddler自签名的CA证书有一些问题,后面导入到手机上时无效,这里就需要安装上面说的FiddlerCertMaker插件。安装后要重启Fiddler,如果安装成功在上图Certificates generated by CertEnroo engine的位置的内容就会显示安装的FiddlerCertMaker插件信息。

设置完成以后点击OK,重启Fiddler。此时在手机端操作一些有https传输的app就会发现可以看到传输的内容,但是有局限性,只有设置了信任所有证书的APP中的HTTPS报文才能查看到,这类APP是非常不安全的。如果需要抓取大部分HTTPS报文怎么办呢?

大家都知道手机系统中集成了系统认为可信的CA根证书,如果服务器的证书是这些机构颁发了,HTTPS请求时系统才认为是安全的,否则SSL握手失败(前提是APP中使用系统默认证书信任机机制)。Fiddler自签名证书肯定不在系统信任的证书列表中,那怎么办呢?我们可以在手机中把Fiddler自签名的证书导入到信任证书列表中就可以解决这个问题了。

接下来打开手机中的浏览器,在地址栏输入Fiddler监听的IP:端口,比如:192.168.1.106:8888。
在这里插入图片描述

点击页面中的FiddlerRoot Certificate,下载并安装证书(如果下载了没有自动提示安装,可进入设置->系统安全->从存储设备安装中手动安装)。

输入证书名称,这里命名fiddler,点击确认。如果安装成功在系统安全->信任的凭据->用户中可以看到刚才安装的证书(如果证书名称是乱码,可能是Fiddler生成的证书有问题,需要安装FiddlerCertMaker插件,重新操作)。
我们在手机端打开有HTTPS链接的APP发现可以抓取HTTPS中的数据报文了。
在这里插入图片描述

五、fiddler工具栏常用功能介绍

1.备注功能,选中一个会话,为当前请求增加备注
在这里插入图片描述
2.回放功能,选中一个会话,点击回放回放该会话,回放在键盘的快捷键是R键,选择一个会话点击R键可以直接回放该会话
在这里插入图片描述
3.调试debug,点击该按钮可以对debug断点进行调试,让断点继续往下走
在这里插入图片描述
3.1 添加断点如下图所示,点击底部状态下图所示位置开始增加断点
在这里插入图片描述
3.2 点击后会显示一个箭头朝上的图标,表示请求断点,箭头朝下,则是响应断点
在这里插入图片描述
4.流模式和缓冲模式切换,默认是缓冲模式,默认所有的http请求数据都返回给fiddler它才会在控制面板展示出来
在这里插入图片描述

5.解码请求
在这里插入图片描述
6.过滤请求
在这里插入图片描述
具体操作如下
在这里插入图片描述
在这里插入图片描述
7.查找功能,快捷键ctrl+F
在这里插入图片描述
在这里插入图片描述
8.计时器
在这里插入图片描述

六、命令行和状态栏

命令行在Fiddler的左下方的黑色窗口,也叫QuickExec,可以调用 Fiddler的内置命令。
这一系列内置的函数用于筛选和操作会话列表中的session(会话)。
在这里插入图片描述
通过快捷键Alt + q可以将焦点定位到命令行输入框(小黑框)中。
当焦点在命令输入框中时,快捷键Ctrl + i可以快速插入当前选中会话的 URL。

如何学习Fiddler的内置命令,看提示:type HELP to learn more,也就是直接在命令行中输入help.
会跳转到官方的帮助文档中https://docs.telerik.com/fiddler/knowledgebase/quickexec

6.1 几个常用的命令:

(1)?text命令

问号(?)后边跟一个字符串,Fiddler 将所有会话中存在该字符串的会话进行匹配,并全部高亮显示。

(2)>size 和 <size命令

大于号(>)和小于号(<)后边跟一个数值,表示高亮所有尺寸大于或小于该数值的会话。

(3)=status命令

选择响应状态等于给定状态的所有HTTP请求。

例如,选择所有状态为200的HTTP请求:=200。

(4)@host命令

选择包含指定 HOST 的全部 HTTP请求。

例如:@csdn.net,选择host包含csdn.net的所有请求。

(5)Bpafter,Bps,bpv,bpm,bpu命令

这几个命令主要用于批量设置断点

Bpafter xxx:中断 URL 包含指定字符的全部 session 响应。

Bps xxx:中断 HTTP 响应状态为指定字符的全部 session 响应。

Bpv xxx:中断指定请求方式的全部 session 响应。

Bpm xxx:中断指定请求方式的全部 session 响应。等同于bpv xxx。

Bpu xxx:与bpafter类似。

更多的其他命令可以参考Fiddler官网手册。
6.2 状态栏

状态栏在Fiddler工具的最下端,如下图:
在这里插入图片描述
说明:

Capturing:显示Capturing表示当前是捕获状态,可以捕获请求,也就是替换了系统代理。

空白表示当前为非捕获状态,请求不会被捕获,点击进行切换。

可以用快捷键 F12 切换该区域。

显示当前捕捉哪些进程的通讯

All Processes :显示捕获所有进程的请求。

Web Browsers :显示捕获 Web 浏览器的请求。

Non-Browser : 显示捕获非 Web 浏览器的请求。

Hide All :隐藏所有请求。

显示当前断点设置状态,通过鼠标点击切换。

默认为不设置断点。(没有显示)

所有请求在断点处被暂停。(红色上箭头图标)

所有响应在断点处被暂停。(红色上箭头图标)

显示当前共捕获了多少 session。

如:显示66,表示共捕获了 66个session。

如果选中了一些session,会显示共选择了多少 session 及 session 总数(如:22/66,表示当前选择22个 session,共66个 session)

描述当前状态或者是一些附加状态。

如果是刚打开 Fiddler,会显示什么时间加载了 CustomRules.js;

如果选择了一个 Session,会显示该 Session 的 URL;

如果在 QuickExec 命令行输入一个命令,就会显示命令相关信息。

七、检查器Inspectors

Inspectors意思是检查器。Inspectors可以使用多种方式,查看请求的请求报文和响应报文相关信息。
Inspectors页签分为上下两部分,上部显示的是发出的请求相关信息,下部显示的是接收的响应相关信息。
在这里插入图片描述

7.1、请求报文

Inspectors面板中请求报文部分,如下图:

  1. Headers – 显示客户端发送到服务器的 HTTP 请求的 header,显示为一个分级视图,包含了 Web 客户端信息、Cookie、传输状态等。

  2. Textview – 显示 POST 请求的 body 部分为文本。

  3. Syntaxview – 为Textview的加强版,查看语法高亮的请求内容。加上了行数标识,鼠标右键的菜单中,相较Textview多了一些功能,如Json、XML格式化,查找替换等。

  4. WebForms – 显示请求的 GET 参数 和 POST body 内容,特别说明,这里 body 应该是 application/x-www-form-urlen-coded 格式。

  5. HexView – 用十六进制数据显示请求。

  6. Auth – 显示 header 中的 Proxy-Authorization 和 Authorization 信息。

  7. Cookies – 请求发送的cookies信息。

  8. Raw – 将整个请求显示为纯文本。

  9. Json – 如果请求的 body 是 json 格式,就是用分级的 Json 来显示它。

  10. XML – 如果请求的 body 是 XML 格式,就是用分级的 XML 树来显示它。

7.2、响应报文

Inspectors面板中响应报文部分,如下图:
在这里插入图片描述

  1. Transformer – Transformer选项是显示响应的编码信息
  2. Headers – 用分级视图显示响应的 header。
  3. TextView – 使用文本显示相应的 body。
  4. Syntaxview – 为Textview的加强版,查看语法高亮的响应内容。
  5. ImageVies – 如果请求是图片资源,显示响应的图片
  6. 左侧灰色区域会显示图片的大小、宽高、文件格式等信息,在下方还可以选择缩放模式:Autoshrink(自动缩放)、Scale to fit(缩放以适应显示区域大小)、No Scaling(无缩放)。
  7. HexView – 用十六进制数据显示响应。
  8. WebView – 响应在 Web 浏览器中的预览效果。
  9. Auth – 显示响应 header 中的 Proxy-Authorization 和 Authorization 信息。
  10. Caching – 显示此请求的缓存信息。
  11. Cookies – 显示此请求的cookies信息,私密 P3P Header 信息。

说明响应报文中Transformer选项

Transformer选项是显示响应的编码信息,如下图:表示可以选择几种压缩方式来提供性能,图中是默认没有选用任何压缩方式。
在这里插入图片描述
抓取访问百度请求之后,发现响应头使用的是Transfer-Encoding:chunked,是用chunked(分块传输)方式传送数据长度值。
在这里插入图片描述

八、自动响应器

1.点击autoresponder,勾选enable rules和unmatched requests passthrough

2.替换步骤

(1)把要替换的会话拉取到空白处,或者选中要替换的内容点击add rule,

(2)选中添加的rule,

(3)在rule editor中填写规则:原接口和替换的规则,替换的规则可以是文件,也可以是状态

(4)点击save

(5)重新刷新浏览器,页面内容更改为替换的内容

注意:原接口必须是fiddler抓到的接口
在这里插入图片描述
3.更改响应结果:可用于mock

把要修改的会话拉取到autoresponder空白处,

选中右键点击edit response,打开后在raw中可以修改内容,然后保存。

勾选生效
在这里插入图片描述
在这里插入图片描述

九、composer区域,是测试接口的界面

在这里插入图片描述
相关说明:

  1. 请求方式:点开可以勾选请求协议是get、post等
  2. url地址栏:输入请求的url地址
  3. 请求头:第三块区域可以输入请求头信息
  4. 请求body:post请求在此区域输入body信息
  5. 执行:Execute按钮点击后就可以执行请求了
  6. http版本:可以勾选http版本
  7. 请求历史:执行完成后会在右侧History区域生成历史记录

重复的并发测试:
在拦截到的url上点击鼠标右键,->replay -> shift+reissue request 设置访问次数,比如100,然后点OK即可。
这里写图片描述

十、过滤器

10.1域名过滤

在这里插入图片描述
抓取到的请求显示如下:在这里插入图片描述
二级域名的过滤,输入*.baidu.com的形式,所有在baidu.com域名下的所有请求都会被过滤出来

10.2进程过滤

为了不和域名过滤器有所冲突,先把进程的过滤关闭。如下图,选择(1)No Host Filter
在这里插入图片描述
进程的过滤操作如下:
在这里插入图片描述

<think>好的,我现在需要帮助用户解决PL/SQL Developer初始化时出现的OCI DLL加载失败的问题。用户提到错误信息是“initialization error Could not load OCI.dll”,并且引用了多个相关的问题和解决方案。首先,我需要理解这个错误的常见原因,然后根据提供的引用信息整理出解决方案的步骤。 首先,用户提供的引用中提到,这个问题通常与环境变量配置、路径错误或OCI.dll文件缺失有关。例如,引用[5]提到环境变量被修改导致PL/SQL找不到tnsnames和oci.dll。引用[3]和[4]也提到了路径配置的问题。所以,我需要将这些信息整合起来,形成有条理的解决步骤。 第一步应该是检查Oracle客户端的安装情况。用户可能没有正确安装Oracle Instant Client,或者安装路径有误。根据引用[3],正确的路径应该是类似于C:\oracle\product\11.2.0\dbhome_1\bin\oci.dll,而用户提到的是instantclient 11.2,可能需要确认安装路径是否正确。 接下来,需要检查PL/SQL Developer的配置。用户需要确保在PL/SQL的首选项中正确设置了Oracle Home和OCI Library的路径。比如,Oracle Home应该指向Instant Client的根目录,而OCI Library应该是该目录下的oci.dll文件。引用[2]和[4]中提到配置这两个参数是关键步骤。 然后,环境变量的设置也很重要。系统PATH变量需要包含Instant Client的路径,这样PL/SQL才能找到必要的DLL文件。引用[5]指出环境变量被修改可能导致问题,所以需要检查PATH是否包含正确的路径。 此外,还需要考虑位数匹配的问题。如果用户安装的是32位的PL/SQL Developer,那么必须使用32位的Oracle Instant Client,否则会出现兼容性问题。引用[3]和[5]可能暗示了这一点,需要提醒用户检查版本是否匹配。 还有可能需要检查文件权限,确保用户有权限读取oci.dll文件,或者重新安装Instant Client以修复可能损坏的文件。引用[1]中的LoadLibrary返回0可能意味着文件不存在或权限不足。 最后,用户可能需要重启计算机使环境变量生效,或者以管理员身份运行PL/SQL Developer,尤其是在权限不足的情况下。 总结起来,解决方案的步骤应该包括:安装或确认Oracle Instant Client的路径,配置PL/SQL的Oracle Home和OCI Library,设置系统环境变量PATH,检查版本兼容性,处理文件权限,以及重启或使用管理员权限运行程序。需要将这些步骤按照逻辑顺序排列,并确保每个步骤都有对应的引用支持,比如引用[2]、[4]、[5]等。同时,要使用用户提到的具体版本信息,如instantclient 11.2,确保建议的准确性。 在编写回答时,要保持结构清晰,分点说明,并且语言简洁。可能需要提醒用户注意常见的错误点,例如路径中的斜杠方向、多余的空格等。此外,提供下载链接和示例路径会有助于用户操作。最后,相关问题可以涉及更深入的环境配置问题或其他常见错误,帮助用户扩展知识。</think>### 分步解决方案:PL/SQL Developer初始化时OCI.dll加载失败 #### 1. **确认Oracle Instant Client安装与路径** - **安装正确版本**:下载与PL/SQL Developer**位数匹配**的Oracle Instant Client(例如32位PL/SQL必须用32位客户端)[^5]。 - 官方下载地址:[Oracle Instant Client 11.2](https://www.oracle.com/database/technologies/instant-client/downloads.html) - **检查路径有效性**:确保Instant Client解压到**无空格和特殊字符**的路径,例如:`C:\instantclient_11_2`[^3][^4]。 #### 2. **配置PL/SQL Developer的Oracle参数** - 打开PL/SQL Developer,取消登录,进入菜单:**Tools → Preferences**。 - **设置Oracle Home**: ```plaintext Oracle Home: C:\instantclient_11_2 ``` - **设置OCI Library**: ```plaintext OCI Library: C:\instantclient_11_2\oci.dll ``` - **保存后重启PL/SQL Developer**[^2][^4]。 #### 3. **配置系统环境变量** - 将Instant Client路径添加到系统`PATH`: ```plaintext 控制面板 → 系统 → 高级系统设置 → 环境变量 → 编辑系统变量Path → 添加C:\instantclient_11_2 ``` - **新建变量**(可选): ```plaintext TNS_ADMIN = C:\instantclient_11_2\network\admin (存放tnsnames.ora的目录) ``` - 重启计算机使环境变量生效。 #### 4. **检查文件完整性与权限** - **验证oci.dll存在**:确认`oci.dll`位于Instant Client目录下。 - **修复文件权限**:右键`oci.dll` → 属性 → 安全 → 赋予当前用户**完全控制权限**。 - 若文件损坏,重新下载并解压Instant Client[^1]。 #### 5. **处理兼容性问题** - 若PL/SQL Developer与Instant Client**位数不匹配**(如64位系统安装了32位PL/SQL),需更换对应版本的客户端。 - 尝试以**管理员身份运行**PL/SQL Developer。 --- ### 常见错误排查 - **错误示例**:`LoadLibrary returned 0` - 原因:路径错误、文件缺失或权限不足[^1]。 - **错误示例**:`TNS:could not resolve the connect identifier` - 解决:检查`TNS_ADMIN`环境变量和`tnsnames.ora`配置[^5]。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值