Fiddler抓包使用简介

目录

Fiddler简介

请求抓包

抓取PC端HTTPS请求

抓取移动端请求

请求查看

发送请求

Mock接口

断点调试

弱网模拟

请求重放

修改HOSTS

总结:


Fiddler简介

Fiddler是一款免费的Windows平台的抓包工具,功能强大,使用简单。Fiddler抓包基于中间人代理模式,工作原理如图2.1所示,Fiddler在启动时会自动设置系统代理,Chrome浏览器等程序访问网页或发送HTTP请求时,便会自动经过Fiddler发送给服务端,因此Fiddler中便能查看到所有当前PC发送的所有HTTP请求。

Fiddler主要特点如下:

  • 可以抓到请求数据,查看Raw格式/表单格式/JSON/XML格式.
  • 可以拦截和修改请求.
  • 更强大的过滤器。
  • 可以抓取Postman/接口脚本发送的请求,方便调试。
  • 可以抓包手机请求。

Fiddler主界面
Fiddler的主界面分为菜单栏、工具栏、请求列表、快速命令栏、监控面板及状态栏等,如图2.2所示。

  

Fiddler菜单栏包括File(文件)、Edit(编辑)、Rules(规则)、Tools(工具)、View(显示)及Help(帮助)。
Fiddler工具栏包括WinConfig(Windows配置)、、Replay(重放)、清理、Go(拦截放行)、Stream(流)、Decode(解码)、Keep: All sessions(请求会话保持)、Any Process(抓取进程)、Find(查找)、Save(保存)、、Browse(浏览器选择)及Clear Cache(清除缓存)。
主体区左侧为请求列表,又称会话列表(客户端与服务端的一次交互被称为一次会话过程)。请求列表中使用不同的图标区分不同类型的会话类型,常见的会话类型如表2.1所示。

注:以上表格使用新版Fiddler的会话图标,HTML格式、XML格式、CSS、脚本、图片等图标与老版本略有不同。

请求图标可以帮助我们快速识别各种类型的请求或相应,GET方法的请求根据不同的响应数据类型显示不同的图标,POST等方法按请求方法类型显示对应的图标。对于数据量比较大的请求,会在请求和响应的过程中或显示为上传和下载的图标,当使用断点拦截请求或响应时,上传、下载图标显示为暂停的样式。

请求抓包

抓取请求是Fiddler的主要功能之一,Fiddler在启动时会自动设置系统代理,因此只要打开Fiddler就可以正常抓取当前PC端的HTTP请求。要抓取HTTPS请求或移动端请求则要进行相应的配置。

抓取PC端HTTPS请求

打开浏览器访问https://www.baidu.com/查看Fiddler中抓取的请求,如图2.3所示。

未设置和安装证书时抓取到的HTTPS请求显示为锁型图标的HTTP CONNECT请求,转发到对应网站的443端口。
抓取HTTPS请求需要现在设置中勾选捕获HTTPS连接及解密HTTPS数据。操作方法是,点击菜单栏Tools(工具),选择Options(选项),切换到HTTPS面板,如图2.3所示。

 

如上图,勾选Capture HTTPS CONNECTs(捕获HTTPS连接)、Decrypt HTTPS traffic(解密HTTPS数据)和Ignore server certificate errors(unsafe)(忽略服务端证书错误)。由于我们需要使用Fiddler提供的免费证书,有可能服务端或报证书错误,忽略即可。
安装Fiddler提供的HTTPS证书。安装方法非常简单,启动Fiddler后,打开浏览器,访问http://localhost:8888/,如图2.5所示。

点击页面下方的链接FiddlerRoot certificate,下载完成后双击打开,点击安装证书,一路下一步使用默认选项安装即可,安装结束后会弹出提示导入成功。
重启Fiddler,重新访问https://www.baidu.com/,如图2.6所示。

这时可以抓取到HTTPS类型的请求。点击该请求,右侧点击Inspectors面板,上半部分为请求信息,下半部分为响应信息。木偶人响应信息已编码过,点击Responsebody is encoded.Click to decode.解码查看,选择Raw格式,可以查看到返回的百度网页的源码。

注:如果抓不到包可以检测一下是否勾选了Filter过滤器。

强制关闭Fiddler会导致代理不能正常取消,Fiddler却已关闭,而无法上网的情况。此时重新打开Fiddler,然后正常关闭一次即可自动取消代理。

抓取移动端请求

抓取手机端App发送的HTTP或HTTPS请求,需要手动在手机端设置网络代理为Fiddler代理服务地址,即使手机通过Fiddler代理上网,才能抓取到。
首先手机要与电脑在同一局域网内,比如同一Wi-Fi网络上网。电脑端启动Fiddler(自动启动代理服务,默认端口号为8888),使用ipconfig或ifconfig查看电脑的IP地址,如192.168.1.3,那么Fiddler代理服务的地址即192.168.1.3:8888。
Fiddler中点击菜单栏Tools(工具),选择Options选项,切换到Connections选项卡,勾线Allow remote computers to connect,已允许远程设备连接Fiddler代理服务,如图2.7所示。

 

打开手机设置,找到所连接的Wi-Fi网络,选高级(iPhone手机点击Wi-Fi网络后面的圈i图标),配置代理,选择手动,IP地址和端口号分别配置为电脑IP地址和8888,点击保存(存储),如图2.8所示。

 

使用手机浏览器访问http://电脑IP地址:8888(建议使用手机原生浏览器),会显示Fiddler Echo Service页面,同样点击FiddlerRoot certificate,下载并安装证书。安装完证书后,iPhone手机还需要对证书进行信任,手机设置中点击通用,点击关于本机,点击证书信任设置,设置信任DO_NOT_TRUST_FiddlerRoot证书,返回即可。
此时保持Fiddler打开,使用手机浏览器浏览网站或使用App请求即可,如弹出HTTPS证书不被信任警告,忽略即可。
注:设置完代理有,由于手机需要通过Fiddler代理上网,如果Fiddler关闭手机会连不上网。不抓包时可以在手机设置中把配置代理取消掉。

请求查看

Inspector(检查员)

在Fiddler请求列表中点击相应请求,右侧选择Inspector选项卡,可以查看请求及响应的详细内容,上半部分为请求,下半部分为响应。请求和响应可以使用子选项卡查看不同的内容及格式,对应说明如表格2.2及2.3所示。

一般可以使用Raw查看原始的请求数据,如果是表单类型的请求,可以使用WebForms查看表单类型的数据,如果是JSON或XML格式可以使用对应的子选项卡查看。

HTTP数据一般是经过压缩传输的,Transformer一般使用默认的即可。可以通过Raw来查看原始响应数据或按照相应的数据类型选择对应的格式查看。
2.2.3 过滤请求
Filters(过滤器)

当请求较多时,使用Filters组件可以帮我们快速过滤出指定的请求。要启用过滤器,首先要右侧Filters选项卡中勾选Use Filters,如图2.9所示。

 

Fiddler支持的过滤方式如下:

  • Hosts:按服务器过滤。
  • Clients Process:按客户端程序过滤。
  • Request Headers:按请求头过滤。
  • Breakpoints:设置断点。
  • Response Status Code:按状态码过滤。
  • Response Type and Size:按响应类型及大学过滤。
  • Response Headers:按响应头过滤。

例如,可以在Hosts段第二个下拉框选择Show only the following Hosts,在下面的文本框中设置要显示域名,以分号分开,如www.baidu.com;www.163.com,就可以只显示发往这两个域名的请求。

注:启用关闭过滤器有时需要重启后方能生效。

发送请求

Composer(调试器)

Fiddler的Composer选项卡可以用来发送和调试请求,如图2.10所示。

 
Composer可以用于发送HTTP请求,功能比较简单,表单格式数据需要自己进行URL编码,填写完成后点击Execute发送即可。请求会以会话的形式显示在请求列表中,同事History历史记录中会有响应的记录。

Mock接口

AutoResponder(自动响应)

Fiddler的Anto Reponder选项卡可以根据一定的规则对匹配到的请求进行自动响应或转向其他的接口或文件。如图2.11所示。

 

勾选Enable rules启用匹配规则,勾选Unmatched requests passthrough对未匹配到的请求正常放行。

断点调试

当我们需要详细抓取并调试某个接口的数据时,可以使用Fiddler的断点调试功能。Fiddler的断点调试设置方式有两处,一是Filter过滤器中对指定特征的请求自动进行断点拦截,另一种是对所有请求设置断点,设置方式为:菜单Rules -> Automatic Breakpoints -> Before Requests/After Responses。断点分为两种方式,一种是Before Requests请求前拦截,即请求未发送到服务器之前拦截。一种是After Responses,服务端响应未送达客户端时拦截,一般我们使用第一种,如图2.12,被断点拦截的请求会显示为暂停图标。此时可以在Inspector中修改其数据,然后点击Go按钮,使用修改后的数据完成请求。

注:如果线上环境中不希望请求数据(如提交订单或支付信息)真实发送到服务器,同时又需要对请求进行抓包,也可以使用断点功能。

弱网模拟

弱网模拟是App测试中一个常用测试项。Fiddler菜单中的弱网模拟功能,只有模拟非常慢的模拟Modem调制解调器上网速度一个选项,设置方式为Rules ->Performance->Simulate Modem Speeds。
更精确的网速控制需要通过Fiddler Script实现。

请求重放

Fiddler支持对抓取到的请求进行重放。操作方法为在请求列表区域,指定请求上,点击右键,选择Replay,选择Replay Sequencely,输入要重放的次数即可。

修改HOSTS

在Fiddler中还可以快速修改HOSTS配置,操作方法为点击惨淡Tools -> HOSTS,设置保存即可。

总结:

感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

   Python自动化测试学习交流群:全套自动化测试面试简历学习资料获取点击链接加入群聊【python自动化测试交流】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DhOSZDNS-qzT5QKbFQMsfJ7DsrFfKpOF&authKey=eBt%2BF%2FBK81lVLcsLKaFqnvDAVA8IdNsGC7J0YV73w8V%2FJpdbby66r7vJ1rsPIifg&noverify=0&group_code=198408628

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/26637.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA运行TOMCAT出现404

就这种问题,每个人的原因都不一定一样,我出现这种问题的解决方法在这里记录一下。顺便把我的配置记录一下。 除了本文的问题,还有可能是默认打开的文件名错了,或者端口被占用。 软件版本IDEA2023 TOMCAT9 亲测:IDE…

C语言进阶之程序环境和预处理

程序环境和预处理 1. 程序的翻译环境和执行环境2. 详解编译链接2.1 翻译环境2.2 编译的几个阶段2.3 运行环境 3. 预处理详解3.1 预定义符号3.2 #define3.2.1 #define 定义标识符3.2.2 #define 定义宏3.2.3 #define 替换规则3.2.4 #和##3.2.5 带副作用的宏参数3.2.6 宏和函数对比…

「网络编程」应用层协议_ HTTPS协议学习及原理理解

「前言」文章内容大致是应用层协议的HTTPS协议讲解,续上篇HTTP协议。 「归属专栏」网络编程 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、HTTPS协议介绍二、什么是"加密"三、为什么要加密四、常见的加密方式五、数据摘要 && 数据指纹六、…

STM32 Proteus仿真可设置时间红绿灯-0075

STM32 Proteus仿真可设置时间红绿灯-0075 Proteus仿真小实验: STM32 Proteus仿真可设置时间红绿灯-0075 功能: 硬件组成:STM32F103C6单片机 74HC595串入并出芯片4个2位数码管显示十字路口红绿灯时间多个按键 1.包含机动车指示灯(红、黄、…

JVM类加载

1.什么是类加载 类加载子系统只是负责加载class字节码文件将类信息放至方法区中,至于是否可以运行,是执行引擎负责的事情。 2.类加载的过程 2.1加载 IO读取字节码文件 为每个类创建一个Class类的对象 将此对象存储在方法区中 2.2链接 2.2.1验证 验证…

noSQL的小练习

目录 Redis: 1、 string类型数据的命令操作: 2、 list类型数据的命令操作: 3、 hash类型数据的命令操作: MongoDB: 1. 创建一个数据库 名字grade 2. 数据库中创建一个集合名字 class 3. 集合中插入若…

IIS 部署的应用禁用HTTP TRACE / TRACK方法【原理扫描】

远程Web服务器支持TRACE和/或TRACK方法。 TRACE和TRACK是用于调试Web服务器连接的HTTP方法。 直接在网站Web.config文件中进行如下操作&#xff1a;在Web.config中的<system.webServer>节点内添加以下配置即可&#xff1a; <security> <requestFiltering> &…

Java阶段五Day07

Java阶段五Day07 文章目录 Java阶段五Day07问题解析dubbo和nacos Dubbo负载均衡负载均衡介绍准备一个负载均衡的环境Dubbo负载均衡策略配置负载均衡的方式dubbo配置负载均衡优先级微服务阶段性架构 Spring Boot Starter自定义配置准备一个starter案例项目Spring框架版本迭代案例…

SVR算法简介及与其它回归算法的关系

目录 参考链接 有人可以帮助我理解支持向量回归技术和其他简单回归模型之间的主要区别是什么 支持向量回归找到一个线性函数&#xff0c;表示误差范围 (epsilon) 内的数据。也就是说&#xff0c;大多数点都可以在该边距内找到&#xff0c;如下图所示 这意味着 SVR 比大多数其…

Opencv入门必读知识

目录 前言 什么是Opencv&#xff1f; 0、预备知识 导入模块的方式 颜色空间 绝对路径与相对路径 国内镜像源 Python环境的安装 PIP命令下载第三方库 pip命令下载 Pycharm设置解释器下载 conda命令下载 pip不是外部和内部命令 1、调用Opencv的API &#xff08;1&a…

【CSDN新星计划】初阶牛C/C++赛道——顺序程序设计(C语句)

目录 3.1 C语句的作用和分类 &#x1f349;&#xff08;1&#xff09;控制语句 &#x1f349;&#xff08;2&#xff09;函数调用语句 &#x1f349;&#xff08;3&#xff09;表达式语句 &#x1f349;&#xff08;4&#xff09;空语句 &#x1f349;&#xff08;5&#…

NAT—网络地址转换

目录 静态NAT 动态NAT NAPT—easy IP 多对多的NAPT 端口映射—高级用法 NAT—网络地址转换 IPV4地址不够用 NAT ABC—三类地址中截取了一部分地址&#xff08;并且让这部分地址可以重复使用&#xff09;—私网地址 A类地址中&#xff1a;10.0.0.0-10.255.255.255 &#xff08;…