《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解

1.简介

按照从上往下,从左往右的计划,今天就轮到介绍和分享Fiddler的会话面板了。

2.会话列表 (Session list) 概览

Fiddler抓取到的每条http请求(每一条称为一个session),会话列表 主要是Fiddler所抓取到的每一条http请求都会显示到这里。主要包含了请求的ID编号、状态码、协议、主机名、URL、内容类型、body大小、进程信息、自定义备注等信息,如下图所示:

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第1张图片《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第2张图片《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第3张图片

如果你想学习接口自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386    

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1.【接口自动化】目前软件测试的市场行情以及测试人员能力标准。、2.【接口自动化】全面熟练Requests库以及底层方法调用逻辑、3.【接口自动化】接口自动化实战及正则和JsonPath提取器的应用等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337&vd_source=488d25e59e6c5b111f7a1a1a16ecbe9a 

3.会话列表各个列详解

3.1每个字段的含义

会话列表中又包含了很多字段,而每一个字段都有其自己的含义,用来描述当前每一条会话的详细信息!

各个字段的含义描述如下表所示:

名称 描述
# 显示抓取的请求id顺序和类型图标,id从1开始递增,HTTP Request 的顺序,从1开始,按照页面加载请求的顺序递增
Result HTTP响应结果状态码
Protocol 当前请求会话所使用的协议,如HTTP/HTTPS/FTP等等
Host 请求地址的主机名或域名(也会是主机名和端口号)
URL 从服务器请求资源的文件路径,有的时候也包含GET请求的具体参数
Body 响应内容的大小, 单位为字节 也就是响应主体(Response Body)中的字节数
Caching 请求的缓存过期时间或缓存控制header等值,即响应头中Expires 和 Cache-Control
Content-Type 响应内容的类型,以及编码类型
Process 发送此请求的程序与进程id:例如chrome:1604。发出此请求的 Windows 进程和进程 ID
Comments 允许用户给请求会话添加备注文本信息。用户通过脚本或者右键菜单给此session 增加的备注
Custom 允许用户设置使用脚本设置自定义字段
........................................

3.2记录不同颜色的含义

每个记录不同图标和不同颜色的含义如下:

1 红色:表示HTTP状态(错误)
2 黄色:表示HTTP状态(认证)
3 灰色:表示数据流类型 Connect 或表示响应类型为图像
4 紫色:表示响应类型为 CSS
5 蓝色:表示响应类型为 HTML
6 绿色:表示响应类型为 Script
7 在Fiddler Script session 的 ui-color 标志位中可以修改字体的颜色

3.3图标含义

icon 含义

图片

正在将请求发送到服务器

图片

正在从服务器读取响应

图片

请求在断点处暂停

图片

响应在断点处暂停

图片

请求使用HTTP HEAD方法

图片

请求使用的 HTTP POST 方法

图片

请求使用HTTP连接方法;这将建立用于 HTTPS 流量的隧道

图片

响应是 HTML

图片

响应是图像

图片

响应是一个JS脚本

图片

响应是级联样式表

图片

响应为 XML

图片

响应为 JSON

图片

响应是音频文件

图片

响应是视频文件

图片

响应是一个 Silverlight 小程序

图片

响应是一个 Flash 小程序

图片

图片
响应是字体

图片

通用成功响应

图片

响应是 HTTP/300,301,302,303 或 307 重定向

图片

响应为 HTTP/304:使用缓存版本

图片

响应是对客户端凭据的请求

图片

响应是服务器错误

图片

会话被客户端、Fiddler 或服务器中止。

图片

表示请求的格式为html格式

 

4.操作会话面板列

在每一个列上面当右键点击session框中的列时,可以发现有5个功能,如下图所示:

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第4张图片

4.1Search this column (搜索此栏)

意思是它会根据每一个栏位的特性来进行条件搜索此栏位, 这样可以快速帮助用户精准找到想要的数据信息,如下图所示:

4.2Flag duplicates (重复会话标志)

标记列中的相同项并将相同项背景滤为绿色。这个功能可以给我们的会话打上标志背景, 并且这个背景颜色标记的是当前列中存在重复的数据

举个例子吧: 例如我们在URL这一栏上右键选择Flag duplicates 那么就会在当前列中存在重复URL的数据上打上一个绿色的背景,如下图所示:

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第5张图片

4.3Hide this column (隐藏此列)

这个没什么说的 就是把当前这一列栏位给隐藏了!

4.4Ensure all columns are visible(确保所有列都可见)

这个功能就相当于一个复位按钮,如果你隐藏了某个栏位又不知道如何把它显示出来,那么就直接点选它就可以全部栏位都复位。

4.5Costomize columns(自定义栏位)

定制列,可以增加其他的列名,并且还可以改变列名。自定义栏位,是对所有列进行自定义, 其实也相当于新增一个栏位,而不是选择的栏位。

5.自定义列

在Fiddler的会话面板中不会展示请求方式,虽然请求头中有展示,但是每次看接口,都得一个一个点开查看,也很麻烦,因此宏哥就以此为例子,添加请求方式列在会话面板。如下图所示:

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第6张图片

宏哥这里提供两种自定义列的方法,第一种方法:界面配置自定义列,第二种方法:通过脚本自定义列。具体步骤如下:

5.1界面操作配置自定义列

1.在列名上,鼠标右键,即可弹出如下信息 ,,然后点击Customize Columns,则弹出如下图所示的弹框。如下图所示:

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第7张图片

2.Collection选择Miscellaneous,Field Name选择RequestMethod。如下图所示:

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第8张图片

3.选择该字段后,你还可以定义列表的宽度以及列名。如下图所示:

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第9张图片

4.点击Add后,你自定义添加的列则会展示在Fiddler会话面板中。如下图所示:

5.2通过脚本自定义列

Fiddler会话面板列有Result、Protocol、Host、URL、Content-Type等等,但有时候我们可能会遇到这样的场景:宏哥需要知道当前请求与应答服务器的ip,那么,如果给fiddler添加一列“ServerIP”,每一个session都会显示ip,那自然是再好不过了。以此为例宏哥讲解和分享一下如何通过脚本添加此自定义列。其实主要就是操作这个文件Fiddler2\Scripts\CustomRules.js。

1.在Fiddler点击Rules,然后再点击Customize Rules,打开添加脚本的文件,如下图所示:

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第10张图片

2.Ctrl+F查找字符串static function Main(),如下图所示:

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第11张图片

3.在其方法体的最后添加如下一行脚本代码,如下图所示:

FiddlerObject.UI.lvSessions.AddBoundColumn("栏位名称自定义", 120, "X-HostIP");

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第12张图片

4.保存脚本后,你自定义添加的列则会展示在Fiddler会话面板中。如下图所示:

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第13张图片

5.3隐藏字段

刚才讲的是添加字段,那可能会有疑惑,我添加后,以后不想要这个字段展示,那该如何处理?

在自定义列时,有个隐藏属性。如果想不展示哪个列字段,在对应字段上右键,选择隐藏即可。选择Hide this cloumn即可,隐藏后,则不会展示了。操作如下图所示:

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第14张图片

5.4展示隐藏的字段

我们将字段隐藏后,还能支持再展示吗?答案是肯定的,操作同理,选择Ensure all cloumns are visible即可,隐藏的列就会展示出来了。操作如下图所示:

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第15张图片

列的自定义,如上操作就可以轻松搞定了。我们在之前也看到,自定义时,可以定义很多字段的;也可以定义请求头、响应头;看各自需求,自定义即可。

5.5请求会话的复制操作

Fiddler中提供了很多对请求会话的复制操作,让你更好的去获取想要的数据。你可以在会话列表中选择你要操作的会话,然后右键选择copy。如下图所示:

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第16张图片

其中子菜单含义如下表,你根据需求进行选择就可以了。如下表所示:

菜单名称 描述
Just URL 复制请求的主机名+URL资源的路径
Terse Summary 复制请求的方法+URL+响应状态
this Column 复制当前请求中的本列信息
Headers Only 以格式化形式复制当前会话的请求报文和响应报文
Session 复制当前原始会话 跟Headers Only差不多
Response DataURL 以及base64编码的形式复制响应数据的URL
Full Summary 复制当前会话信息对应的列

5.6请求会话的保存操作

Fiddler对会话的存储也制定了一些规则:你可以在会话列表中选择你要操作的会话,然后右键选择save。其中save菜单下有四个选项

1 Selected Session(选定的会话)
2 Request(请求)
3 Response(响应)
4 ...and Open as local File(作为本地文件打开)

如下图所示:

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第17张图片

5.6.1Selected Session

Selected Session(选定的会话) 其下子菜单选项如下:

选项 描述
in ArchiveZIP 把当前所选择的请求会话保存到.saz文件中
as Text 把当前所选择的请求会话保存到文本文件中 包含请求报文+响应报文+响应体
as Text (Headers only) 把当前所选择的请求会话保存到文本文件中 包含请求报文+响应报文

5.6.2Request

Request(请求)旗下子菜单选项如下图所示:

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第18张图片

各个选项的含义如下表所示:

选项 描述
Entire Request 把当前所选择的请求会话保存到文本文件中 只有请求报文
Request Body 保存当前请求会话请求正文文本文件

5.6.3Response

Response(响应)子菜单如下图所示:

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第19张图片

各个选项的含义如下表所示:

选项 描述
Entire Response 把当前所选择的请求会话保存到文本文件中 只有响应报文+响应体
Response Body 保存当前请求会话响应体文本文件

5.6.4...and Open as local File

...and Open as local File(作为本地文件打开)

这个选项的意思就是保存为本地的一个html文件 并且进行打开!

6.小结

6.1保存会话乱码问题

我们有时候保存会话查看时,会发现返回的响应体是乱码,如下图所示:

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第20张图片

遇到这种问题,主要是需要解码就行了。宏哥这里提供两种方法:

(1)在Inspectors 会话响应中点击Response body is encodee.click to decode后,重新保存就没乱码了。

(2)选中上图会话框上的decode按钮,这样就自动解码了。

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第21张图片

解码后的,响应正文没有乱码,如下图所示:

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解_第22张图片

其实如果你已经了解了http的基础知识,那么会话列表中的列的信息也会很快的理解!而且你也不用每一个都去记住,要用的时候来查一查就行了!

你可能感兴趣的:(fiddler,http,前端,docker,selenium,职场和发展,测试工具)