Fiddler 工具浅析
Fiddler 是位于客户端和服务器端的 HTTP 代理,也是目前最常用的 HTTP 抓包工具之一。(Mac OS 建议采用 Charles)
它可以记录客户端和服务器之间的所有 HTTP 请求,并可以针对特定的 HTTP 请求,分析请求数据、设置断点、调试 web 应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是 web 调试和网络请求分析的利器。
Fiddler 作为一个代理,自然客户端的所有请求都会先经过它,再转发给相应的服务器。反之,服务器端的所有响应,也都会先经过 Fiddler 然后发送给客户端。所以,Fiddler 支持所有可以设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序。

Fiddler 界面解析
我们不妨直接看到 Fiddler 的界面,可以看到很多不错的东西。

这里是大概的主界面,由于内容涵盖还是比较多,所以我们分块解析
Web Session 面板区域

web session 面板区域主要包含了每条 HTTP 请求(每一条称为 session),主要包含了请求的 url,状态码,body 等信息。

HTTP Request 的顺序,从 1 开始,按照页面加载请求的顺序递增。其中序列号列中一般还有图标,代表不同的响应类型。具体类型包括:

Result
HTTP 响应的状态。状态码解析请参考专业的 HTTP 书籍。
Protocol
请求使用的协议,如 HTTP/HTTPS/FTP 等。
Host
请求地址域名。
URL
请求的服务器路径和文件名,也包括 GET 参数。
Body
请求的大小,单位为 byte。
Caching
请求的缓存过期时间或缓存控制 header 等值。
Content-Type
请求响应的类型(Content-Type)
Process
发出此请求的进程及进程 ID。
Comments
用户通过脚本或者右键菜单给此 session 增加的备注。
Custom
用户可以通过脚本设置的自定义值。

详情和数据面板区域

该区域基本是我们必须关注的点,我们可以在这个区域看到每条 HTTP 请求的具体数据统计和数据包分析。其中的 inspector 面板下的数据往往最受我们的重视。

inspector

这里可以看到我们请求的诸多数据,由于时间关系,我们也就仅拿出其中的 Header 部分做讲解,其他部分同理。

上面的 Header 中包含了我们常见的请求头,比如客户端的设备相关信息、Cookies、连接状态。

下面是我们的响应头 Header,同时也包含了响应时间、过期时间、响应格式、数据包大小、连接状态等。

Composer

我们经常在做一些接口测试的需要做一些骚操作,比如上传文件等,这个完全不像 GET 请求那般可以直接带上我们的参数在浏览器访问。这时候我们又不想去写一个脚本。好伙计,Composer 正好满足了我们的需求。
正如截图中样式,我们可以设置请求方式、请求地址,参数、甚至是上传文件等,这一些请求我们都可以模拟。
不得不感叹,确实黑科技。
一些其他菜单说明
Filters 强大的过滤机制
Fiddler 支持域名过滤,只需要在 Filters 里面设置即可。

过滤条件涵盖非常广泛,比如过滤特定 HTTP 状态码的请求、特定请求类型的 HTTP 请求等,更多的过滤方式还需要大家自己去挖掘。
选择抓取区域

可以选择是否支持 HTTPS,选择是否抓取所有进程的请求,还是仅仅浏览器的请求,抑或是仅仅远程设备的请求,功能都是非常强大的。

一些必备的处理
对于 Web 抓包
要想抓包到相应的数据,必须设置浏览器代理为 127.0.0.1:8888,否则无法捕获到 HTTP 请求。

对于 HTTPS 的支持
默认情况下,Fiddler 是不支持直接查看 HTTPS 请求的,我们必须在设备上安装它的证书。

这里姑且直接以抓取 Android 手机的 HTTPS 请求做示例。

1.首先设置 Fiddler。打开工具栏 => Tools => Fiddler Options => HTTPS

2.导出证书到手机。

3.直接在手机端安装。
在手机上安装证书这个操作,太多机型了,都不太一样,姑且大家自行百度。

作者:nanchen2251
链接:https://www.jianshu.com/p/b87309a92411
来源:简书导出证书到手机。

Fiddler 抓包浅析的更多相关文章

  1. 从Fiddler抓包到Jmeter接口测试(简单的思路)

    备注:本文为博主的同事总结的文章,未经博主允许不得转载. Fiddler下载和配置安装 从网上下载fiddler的安装包即可,直接默认,一直点击下一步,直至安装完成. 安装完成后直接打开Fiddler ...

  2. 【转】零基础学习Fiddler抓包改包

    看到一篇讲关于Fiddler抓包工具的讲解,个人感觉写得很仔细,但是作者说禁止转载,那就放个链接Mark一下 http://tmq.qq.com/2016/12/fiddler_packet_capt ...

  3. Fiddler 抓包工具总结

    阅读目录 1. Fiddler 抓包简介 1). 字段说明 2). Statistics 请求的性能数据分析 3). Inspectors 查看数据内容 4). AutoResponder 允许拦截制 ...

  4. Fiddler-2 Fiddler抓包原理

    1 fiddler抓包是在 客户端和服务器之间建立一个代理服务器,监听本机发出的请求和服务器返回的响应结果. 截一张官网的图: 2 启动fiddler之前,[dinghanhua]先来看一下代理服务器 ...

  5. Fiddler抓包测试App接口

    Fiddler抓包测试App接口 使用Fiddler对手机App应用进行抓包,可以对App接口进行测试,也可以了解App传输中流量使用及请求响应情况,从而测试数据传输过程中流量使用的是否合理. 抓包过 ...

  6. Charles是Mac的Fiddler抓包工具

    windows下面我们经常使用 Fiddler 抓包工具进行代理等一系列操作.然而,在 Mac 下的 Fiddler 勉强能运行,但是其挫的都不想说它了.今天看到朋友推荐这款 Charles Mac下 ...

  7. Python+Requests接口测试教程(1):Fiddler抓包工具

    本书涵盖内容:fiddler.http协议.json.requests+unittest+报告.bs4.数据相关(mysql/oracle/logging)等内容.刚买须知:本书是针对零基础入门接口测 ...

  8. Fiddler抓包工具使用详解

    一.Fiddler简介 Fiddler是最强大最好用的Web调试工具之一, 它能记录所有客户端和服务器的http和https请求.允许你监视.设置断点.甚至修改输入输出数据.Fiddler包含了一个强 ...

  9. Fiddler 抓包https配置 提示creation of the root certificate was not successful 证书安装不成功

    在使用Fiddler抓包时,我们有时需要抓https协议的包,这种需要配置一下 开启监控https才可以 首先 找到Tools——>Options 在弹出的菜单中 选择https项  勾选捕捉h ...

随机推荐

  1. Python中网络编程对 listen 函数的理解

    listen函数的第一个参数时SOCKET类型的,该函数的作用是在这个SOCKET句柄上建立监听,至于有没有客户端连接进来,就需要accept函数去进行检查了,accept函数的第一个参数也是SOCK ...

  2. 我的开源项目——Jerry

    在日常工作中,经常会碰到一些问题,比如数字金额要写成千分位形式(1234 -> 123,4.00).要写成汉字大写形式(123 -> 壹佰贰拾叁圆),又比如要进行 cookie 读写操作, ...

  3. ElasticSearch 获取es信息以及索引操作

    检查集群的健康情况 GET /_cat/health?v green:每个索引的primary shard和replica shard都是active状态的yellow:每个索引的primary sh ...

  4. Jenkins + GitLab 通过 Webhook 自动触发构建爬坑记录

    前言   在局域网搭建了一个Jenkins服务,用于自动构建和发布,在调通了构建程序之后,想使用内网的GitLab的Webhook功能触发代码推送事件,然后进行自动构建.后来发现在GitLab上做测试 ...

  5. 关于ssm框架使用mysql控制台出现警告问题

    使用MySQL时,总会时不时出现这种警告信息 警告信息:WARN: Establishing SSL connection without server's identity verification ...

  6. FFMpeg笔记(三) 音频处理基本概念及音频重采样

    Android放音的采样率固定为44.1KHz,录音的采样率固定为8KHz,因此底层的音频设备驱动需要设置好这两个固定的采样率.如果上层传过来的采样率不符的话,需要进行resample重采样处理. 几 ...

  7. ios学习路线—Objective-C(深浅拷贝)

    在ObjC中,什么是深浅拷贝?  深浅拷贝分别指深拷贝和浅拷贝,即 mutableCopy 和 copy 方法.  copy复制一个不可变对象,而 mutableCopy 复制一个 mutable 可 ...

  8. jQuery hide() 参数callback回调函数执行问题

    $("#b").click(function() { $("div").hide(1000,bbb); //-------------1 bbb是一个函数,但这 ...

  9. linux 系统运行级别一般为 0-6,请分别写出每个级别的含义

    每个运行级别的含义 0   关机模式(不要把启动级别  运行级别设置为0) 1   单用户模式 2   无NFS多用户模式 3   文本模式(命令行模式,完整的多用户模式) 4   未使用的 5   ...

  10. HBase数据存取流程

    一.HBase的特点是什么 1.HBase一个分布式的基于列式存储或者行式存储的数据库,基于hadoop的hdfs存储,zookeeper进行管理. 2.HBase适合存储半结构化或非结构化数据,对于 ...