Fiddler简介和工具详细介绍(一)

Fiddler简介

Fiddler是位于客户端和服务端之间的http代理。
目前最常用的HTTP抓包工具之一
功能非常强大,是WEB调试的利器
  • 监控浏览器所有的HTTP/HTTPS流量
  • 查看分析请求内容的细节
  • 伪造客户端请求和服务器响应
  • 测试网站性能
  • 解密HTTPS的web会话
  • 全局和局部断点功能
 

场景使用

接口测试、接口调试、线上环境调试、web性能分析
判断前后端bug、开发环境hosts配置、mock、弱网断网测试
 

抓包原理

B/S架构
编写程序部署到web服务器,绑定ip并监听某端口,接收和处理http请求
客户端通过http协议 获取 服务器上 网页文档等资源
webclient------->http协议----->httpserver
webclient------->fiddler------->httpserver
打开fiddler有个功能tools-->option-->connections-->act as system proxy作为系统代理
chrome浏览器会设置系统代理,可以到设置->高级->系统->打开您计算机的代理设置->如果开启了fiddler
则这边的使用代理服务器的地址将会变成本地回环地址127.0.0.1,这个地址不属于任何一个类别的地址,代表设备本地虚拟接口,即服务器或者代理装在本机,则使用该接口去运行,关闭fiddler后则关闭代理服务器,所以这就是fiddler为什么能抓取数据的原因
同样的有一些FQ软件也是使用了代理
 

HTTP协议讲解

Hyper Text Transfer protocol超文本传输协议
用于从万维网服务器 传输 超文本(资源) 到 到本地浏览器的传输协议
最初是用来向客户端传输HTML页面 内容,
是基于TCP的应用协议,不关心数据传输的细节,用来 规定客户端和服务端的数据传输格式,
HTTP是基于 请求和响应模式的 无状态的 应用层协议
默认端口是80

请求报文

请求报文主要由请求行 请求头 空一行 请求正文 (请求体
GET直接存储在URL中请求没有请求体,post请求和put请求有请求体
 

响应报文

响应报文 主要由响应行 响应头 空行 响应正文·(响应体
响应体可以是json、可以是文本、HTML、xml,做接口测试的出参,判断请求被正常处理
如果用fiddler获取请求头来用jmeter做接口测试 ,fiddler中安装jmeter插件,直接export出来就可以用
一些更详细的内容可看HTTP协议

Fiddler工具详解及应用实战

工具介绍

 前几篇简单的介绍了Fiddler的功能,对于工具栏的操作只是简单了解,今天写一篇工具栏功能介绍和操作。

工具栏功能内容

工具栏依次是:会话保存,数据重放(Replay),转到(GO),数据流(Stream),解码(Decode),保持所以会话(session),进程(Process),查找(Find),保存(Save),浏览(Browse),清除缓存(clear Cache),文字编码(TextWizard),分离(Tearoff)

表示增加会话备注,方便我们查看

 

表示回放会话,想要重新请求会话,可以使用此功能(快捷键 R),按住shif+R 可以设置重放次数,串行而不是并发的操作

表示清空会话列表,也可以进行过滤列表

表示可以使用请求往下走,这个可以和Fiddler断点进行使用

表示用来模式切换,在流模型和缓存模式下进行切换

流模式:理解成为一种实时通信的模式,有请求就有返回,也就是实时返回

缓存模式:等待所有的请求都到一起在返回,也就是等所有的数据都准备好了以后才返回给客户端,一般使用缓存模式

表示把http协议的响应解压出来

设置保存会话的数量,会话越多占用内存越大

过滤会话列表,例如:只想要谷歌浏览器的请求,就只需要放到浏览器上就行

查找会话请求,一般会话比较多的时候可以使用此工具进行查找和备注颜色(这个地方我只请求的有百度)

表示保存需要的会话

保存截图功能,5秒后就把截图保存下来了,保存后直接可以在fiddler上进行查看

表示计时器

表示快速启动浏览器

表示快速清除缓存

表示快速编码和解码,点击后,选择解码方式就可以了

表示窗口分离。想要恢复关闭就行

为了观察方便使用了动态图片奈何出现了水印,希望大家不要喷~~~~大家快去尝试下Fiddler的功能吧

 

如何显示工具栏

菜单栏中--view---show Toolbar控制打开和关闭工具栏

Fiddler页面介绍

1、工具栏依次是:数据重放(Replay),转到(GO),数据流(Stream),解码(Decode),保持所以会话(session),进程(Process),查找(Find),保存(Save),浏览(Browse),清除缓存(clear Cache),文字编码(TextWizard),分离(Tearoff)

2、会话列表:显示捕捉每个session会话

3、请求响应:方便查看请求信息

4、返回响应:方便查看返回请求信息

5、命令行工具:可以通过输入一些命令完成操作

Statistics选择卡

statistics表示统计请求和响应的一些信息

request count:请求数,表示该session总共发起了多少个请求。

Bytes sent:发送请求的字节数(包括请求头和请求体)

Bytes received:接收到的字节数(包括响应头和响应体)

------------------------

clientconnected:客户端连接的时间;

clientbeginrequest:客户端开始发送请求的时间;

gotrequestheaders:获得请求头文件的时间;

clientdonerequest:客户端完成请求的时间;

determine gateway:确定网关使用的时间;

dns lookup:查看dns使用的时间;

tcp/ip connect:tcp/ip 连接使用的时间;

https handshake:https握手使用的时间;

serverconnected:服务连接发生的时间;

fiddlerbeginrequest:fiddler开始请求的时间;

servergotrequest:服务器得到请求的时间;

serverbeginresponse:服务器开始响应的时间;

gotresponseheaders:得到响应头文件的时间;

serverdoneresponse:服务器完成响应的时间;

clientbeginresponse:客户端开始响应的时间;

clientdoneresponse:客户端完成响应的时间;

overall elapsed:全部花掉的时间(使用客户端完成响应的时间-客户端开始请求的时间)

Inspectors选择卡

Inspectors 选项卡下可以查看HTTP 请求和HTTP响应的报文结构。其中Raw选项卡可以查看完整的消息,Headers 选项卡只查看消息中的Header

这些功能可以详细的查看请求内容和响应内容

AutoResponder选择卡

模拟返回的内容

我们拿请求百度举例子。上传了图片

再次请求查看返回内容,发现返回我们的是一个照片

 composer选择卡

composer是Fiddler做接口调试的模块

 

会话列表

RequestMethod:请求方式

URL:请求链接

host:请求服务器主机

content-Type:响应中Content-Type 的值

Result:HTTP状态码

protocol:请求协议类型(HTTP或者HTTPS)

body:Body大小

caching:缓存相关的字段值

Process :对应本地Windows 的进程

 

各个会话图标表示什么

官方地址:https://docs.telerik.com/fiddler/KnowledgeBase/UIGuide

工具使用

Fiddler抓取HTTP协议

1、打开Fiddler工具,打开任意一个浏览器,输入我们想要抓取的网址如:www.baidu.com

2、查看会话列表,选择其中一个会话,查看请求信息中Inspectors功能,查看详细数据

 

Fiddler设置开始捕捉和停止捕捉

在Fiddler使用过程中已经抓取到了我们想要的数据,这个时候就可以停止抓包,防止抓取一些不必要的数据影响分析:

1、直接使用快捷键F12(停止或者开启抓包)

2、在Fiddler 中单击File-> Capture Traffic (快捷键是Fl2 ) 来开始抓包或者停止抓包。

3、单击Fiddler 左下角的"Capturing"按钮来开始抓包或者停止抓包。

 

 

 

 

 

参考链接: https://www.cnblogs.com/qican/p/11320862.html

 

posted @ 2021-04-11 18:17  陈晓猛  阅读(348)  评论(0编辑  收藏  举报