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

简介: 【7月更文挑战第19天】Fiddler会话面板概览:Fiddler的会话列表显示HTTP请求的详细信息,包括ID、状态码、协议、主机名、URL、内容类型、大小、进程及自定义备注。颜色和图标标识状态,如红色表示错误,黄色为认证,蓝色是HTML响应。用户可右键列进行搜索、标记重复、隐藏或自定义列,如添加请求方法。通过界面或脚本可添加自定义列,如显示ServerIP。会话还可复制和保存,解决乱码问题需解码响应体。

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

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

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.在其方法体的最后添加如下一行脚本代码,如下图所示:

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菜单下有四个选项

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的基础知识,那么会话列表中的列的信息也会很快的理解!而且你也不用每一个都去记住,要用的时候来查一查就行了!😉

相关文章
|
2月前
|
存储 缓存 NoSQL
保持HTTP会话状态:缓存策略与实践
保持HTTP会话状态:缓存策略与实践
|
2月前
|
网络协议 JavaScript 前端开发
【HTTP】HTTP报文格式和抓包
【HTTP】HTTP报文格式和抓包
75 0
http数据包抓包解析
http数据包抓包解析
http数据包抓包解析课程笔记
http数据包抓包解析课程笔记
|
4月前
|
机器学习/深度学习 Ubuntu Linux
在Linux中,如何按照该要求抓包:只过滤出访问http服务的,目标ip为192.168.0.111,一共抓1000个包,并且保存到1.cap文件中?
在Linux中,如何按照该要求抓包:只过滤出访问http服务的,目标ip为192.168.0.111,一共抓1000个包,并且保存到1.cap文件中?
|
5月前
|
JSON 网络协议 安全
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(1)-HTTP和HTTPS基础知识
【7月更文挑战第16天】本文介绍了HTTP和HTTPS协议的基本概念与作用,强调了理解HTTP协议对使用抓包工具Fiddler的重要性。HTTP是用于Web浏览器与服务器间信息传输的协议,不加密,易被截取,不适合传输敏感信息。HTTPS是HTTP的安全版,通过SSL/TLS提供加密和服务器身份验证,确保数据安全。HTTP请求包括请求行、请求头、空行和可选的请求主体,响应则有响应行、响应头、空行和响应主体。HTTP协议无状态,而HTTPS解决了安全性问题,但也带来了额外的计算开销。Fiddler作为一个强大的抓包工具,可以帮助开发者和测试人员分析HTTP/HTTPS通信,理解请求和响应的结构。
86 4
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(1)-HTTP和HTTPS基础知识
|
Web App开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
TCP洪水攻击(SYN Flood)的诊断和处理 Posted by  海涛  on 2013 年 7 月 11 日 Tweet1 ​1. SYN Flood介绍 前段时间网站被攻击多次,其中最猛烈的就是TCP洪水攻击,即SYN Flood。
1009 0
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
ZooKeeper 保证了数据的强一致性,  zk集群中任意节点(一个zkServer)上的相同znode下的数据一定是相同的。
807 0
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
 Connection reset by peer的常见原因: 1)服务器的并发连接数超过了其承载量,服务器会将其中一些连接关闭;    如果知道实际连接服务器的并发客户数没有超过服务器的承载量,看下有没有网络流量异常。
863 0
|
Web App开发 存储 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
NoSuchObjectException(message:There is no database named cloudera_manager_metastore_canary_test_db_hive_hivemetastore_df61080e04cd7eb36c4336f71b5a8bc4) at org.
1083 0