前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解

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

作者头像
北京-宏哥
发布2022-08-19 14:59:30
1.4K0
发布2022-08-19 14:59:30
举报
文章被收录于专栏:Fiddler教程北京宏哥Fiddler教程

1.简介

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

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

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

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记录不同颜色的含义

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

代码语言:javascript
复制
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个功能,如下图所示:

4.1Search this column (搜索此栏)

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

4.2Flag duplicates (重复会话标志)

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

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

4.3Hide this column (隐藏此列)

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

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

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

4.5Costomize columns(自定义栏位)

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

5.自定义列

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

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

5.1界面操作配置自定义列

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

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

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

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,打开添加脚本的文件,如下图所示:

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

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

代码语言:javascript
复制
FiddlerObject.UI.lvSessions.AddBoundColumn("栏位名称自定义", 120, "X-HostIP");

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

5.3隐藏字段

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

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

5.4展示隐藏的字段

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

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

5.5请求会话的复制操作

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

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

菜单名称

描述

Just URL

复制请求的主机名+URL资源的路径

Terse Summary

复制请求的方法+URL+响应状态

this Column

复制当前请求中的本列信息

Headers Only

以格式化形式复制当前会话的请求报文和响应报文

Session

复制当前原始会话 跟Headers Only差不多

Response DataURL

以及base64编码的形式复制响应数据的URL

Full Summary

复制当前会话信息和对应的列

5.6请求会话的保存操作

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

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

如下图所示:

5.6.1Selected Session

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

选项

描述

in ArchiveZIP

把当前所选择的请求会话保存到.saz文件中

as Text

把当前所选择的请求会话保存到文本文件中 包含请求报文+响应报文+响应体

as Text (Headers only)

把当前所选择的请求会话保存到文本文件中 包含请求报文+响应报文

5.6.2Request

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

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

选项

描述

Entire Request

把当前所选择的请求会话保存到文本文件中 只有请求报文

Request Body

保存当前请求会话的请求正文为文本文件

5.6.3Response

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

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

选项

描述

Entire Response

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

Response Body

保存当前请求会话的响应体为文本文件

5.6.4...and Open as local File

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

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

6.小结

6.1保存会话乱码问题

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

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

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

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

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-07-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.简介
  • 2.会话列表 (Session list) 概览
  • 3.会话列表各个列详解
    • 3.1每个字段的含义
      • 3.2记录不同颜色的含义
        • 3.3图标含义
        • 4.操作会话面板列
          • 4.1Search this column (搜索此栏)
            • 4.2Flag duplicates (重复会话标志)
              • 4.3Hide this column (隐藏此列)
                • 4.4Ensure all columns are visible(确保所有列都可见)
                  • 4.5Costomize columns(自定义栏位)
                  • 5.自定义列
                    • 5.1界面操作配置自定义列
                      • 5.2通过脚本自定义列
                        • 5.3隐藏字段
                          • 5.4展示隐藏的字段
                            • 5.5请求会话的复制操作
                              • 5.6请求会话的保存操作
                                • 5.6.1Selected Session
                                • 5.6.2Request
                                • 5.6.3Response
                                • 5.6.4...and Open as local File
                            • 6.小结
                              • 6.1保存会话乱码问题
                              相关产品与服务
                              云开发 CloudBase
                              云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档