Fiddler实现 HTTP 网络抓包

简介: Fiddler实现 HTTP 网络抓包

前言

前面我们简单地学习了关于应用层——自定义协议的知识,但是这都只是自定义协议,在实际生活中自定义协议用的还是占少数的,在应用层中比较常用的协议是 HTTP 协议,在学习这两个协议之前,我们需要使用到一个工具——Fiddler来实现 HTTP 的抓包来查看它们的请求和响应报文。

Fiddler 是什么

Fiddler是一个HTTP协议调试代理工具,它能够记录并检查所有电脑和互联网之间的HTTP通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie、html、js、css等文件)。


如果只是客户端和服务器端之间的通信,我们其实很难查看到客户端的请求数据包和服务端的响应数据包,我们客户端得到的只是请求数据包和响应数据包经过处理之后得到的,既然要学习 HTTP 协议,我们首先要学习它的报文格式,学习他的报文格式就需要得到它的报文格式,要想获取到 HTTP 的请求和响应报文,就需要借助到抓包工具来抓取到 HTTP 数据包。


Fiddler 是专门来负责抓取 HTTP 数据包的,其他工具虽然也可以抓取 HTTP 数据包,但是因为 Fiddler 是专门抓取 HTTP 数据包的,所以相较于其他软件,抓取 HTTP 数据包我们还是使用 Fiddler。


下载 Fiddler

1. 官网下载 Fiddler Classic

进入 Fiddler 官网https://www.telerik.com/fiddler


Fillder Everywhere 虽然功能更多,但是需要支付一定的费用,所以我们选择 Fiddler Classic免费版。找到下面的 Fiddler Classic 点击 Try For Free


简单填写信息后便可下载



2. 安装 Fiddler Classic

下载完成 Fiddler Classic 的安装包之后就是安装了,安装过程很简单。


3. 打开 Fiddler Classic

打开 Fiddler 之后可能会出现这样的提示,我们点 NO 就可以了。


打开之后出现的是这样的界面

但是你们出现的抓包数据可能没有那么多并且抓取到的都是 HTTP 数据包,而没有 HTTPS 数据包,要想抓取到 HTTPS 数据包,还需要做出相关的配置。点击 Tools 、Options


选择 HTTPS ,然后将出现的所有选项都勾选上。

在勾选过程中可能会弹出提示,这里弹出来的是安全证书,我们选择YES,记住了,这里一定要选择 YES ,否者就需要卸载重装了。


左边显示的就是我们 Fiddler 抓取到的 HTTP 数据包和 HTTPS 数据包

当我们访问 www.baidu.com 的时候左边会抓取到很多的数据包,我们不用管那么多,只需要看这个蓝色的就可以了。


双击抓取到的 HTTP 数据包之后,右边就会显示出 HTTP 数据包的请求数据包和响应数据包。

通过点击请求数据包的 Row 和 View In Notepad 可以记事本打开。


查看下面的响应部分我们可以发现,响应数据包出现的是乱码,那么为什么这里会出现乱码呢?因为当服务器在返回响应的时候会对这个数据吧进行压缩来节省网络带宽,如果每个响应数据包都不压缩的话,那么就会造化网络带宽的浪费,所以我们需要对这个压缩的数据包进行解压缩。

解压缩之后,同样是点击 Row,查看详细的数据格式。


点击左边部分,然后使用 CTRL + a 、delete 可以删除抓取到的数据包。


相关文章
|
1月前
|
网络协议 Linux 网络安全
curl(http命令行工具):Linux下最强大的网络数据传输工具
curl(http命令行工具):Linux下最强大的网络数据传输工具
55 0
|
2天前
|
存储 缓存 开发框架
Flutter的网络请求:使用Dart进行HTTP请求的技术详解
【4月更文挑战第26天】了解Flutter网络请求,本文详述使用Dart进行HTTP请求
|
11天前
|
网络协议 Java API
深度剖析:Java网络编程中的TCP/IP与HTTP协议实践
【4月更文挑战第17天】Java网络编程重在TCP/IP和HTTP协议的应用。TCP提供可靠数据传输,通过Socket和ServerSocket实现;HTTP用于Web服务,常借助HttpURLConnection或Apache HttpClient。两者结合,构成网络服务基础。Java有多种高级API和框架(如Netty、Spring Boot)简化开发,助力高效、高并发的网络通信。
|
12天前
|
网络协议 安全 API
Android网络和数据交互: 什么是HTTP和HTTPS?在Android中如何进行网络请求?
HTTP和HTTPS是网络数据传输协议,HTTP基于TCP/IP,简单快速,HTTPS则是加密的HTTP,确保数据安全。在Android中,过去常用HttpURLConnection和HttpClient,但HttpClient自Android 6.0起被移除。现在推荐使用支持TLS、流式上传下载、超时配置等特性的HttpsURLConnection进行网络请求。
10 0
|
16天前
|
存储 JSON 前端开发
网络原理(4)HTTP协议(下)
网络原理(4)HTTP协议
27 0
|
1月前
|
Shell Linux 网络安全
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
32 0
|
1月前
|
Shell Linux Apache
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
163 1
|
1月前
|
网络协议 网络安全 API
Qt 网络编程之美:探索 URL、HTTP、服务发现与请求响应
Qt 网络编程之美:探索 URL、HTTP、服务发现与请求响应
49 1
|
1月前
|
监控 网络安全 C++
Qt 5.14.2 网络编程揭秘:构建高效HTTP客户端与文件下载器
Qt 5.14.2 网络编程揭秘:构建高效HTTP客户端与文件下载器