初识Http协议抓包工具—Fiddler
1.Fiddler简介
Fiddler是用一款使用C#编写的http协议调试代理工具。它支持众多的http调试任务,能够记录并检查所有你的电脑和互联网之间的http通讯,可以设置断点,查看所有的“进出”Fiddler的数据(cookie,html,js,css等)。
本文为Fiddler入门教程,主要介绍Fiddler下载安装、Http接口抓包分析及模拟请求方法。
运行环境为Windows 7系统,Fiddler版本为4。(Fiddler有.net 2.0 和 .net 4.0 两种版本,根据自己系统.net framework版本选择相应版本即可)
2.Fiddler安装
1.官网下载
地址:https://www.telerik.com/download/fiddler/fiddler4
2.安装步骤
双击FiddlerSetup.exe即可完成安装
3.启动Fiddler
开始菜单找到Fiddler 4或找到Fiddler安装目录下的Fiddler.exe,运行即可
3. 配置fiddler
首先需要配置下fiddler抓取Https请求方法:
1. 打开fiddler配置项:Tools –> Options

2. 打开配置项HTTPS,勾选“Capture HTTPS CONNECTs”,同时勾选“Decrypt HTTPS traffic”,弹出的安装证书对话框时选择“是”。如果需要监听不可信的证书的HTTPS请求的话,需要勾选“Ignore server certificate errors (unsafe)”。

4. 分析Http请求
4.1 Http消息结构简介
4.1.1 Request请求消息
Request请求消息分为3部分,第一部分叫Request line, 第二部分叫Request header, 第三部分是body. header和body之间有个空行, 结构如下图:

其中,第一行中的Method表示请求方法,比如"POST","GET", Path-to-resoure表示请求的资源, Http/version-number 表示HTTP协议的版本号。当使用"GET" 方法时, body为空
4.1.2 Response响应消息
和Request消息的结构基本一样,Response响应消息的结构同样也分为三部分:第一部分叫Response line, 第二部分叫Response header,第三部分是body. header和body之间也有个空行, 结构如下图:

HTTP/version-number表示HTTP协议的版本号,status-code 和message 表示Http响应状态码及消息文本,常见的有 200 OK, 302 Found, 403 Forbidden,404 Not Found,500 Internal Server Error等。
4.2 分析Get接口
4.2.1 请求示例
我们在运行Fiddler后,使用Chrome浏览器打开百度首页后,并搜索关键词fiddler

4.2.2 查看Get请求
此时Fiddler会抓取浏览器所有的Http请求,点击任何一条请求均可看到详细信息,包括协议类型,URL,Client及cookie信息。
如打开百度首页,Http请求内容如下:

输入搜索词Fiddler后,百度搜索Http请求如下(可以看到请求关键参数:wd=fiddler):

点击右侧Raw查看请求详细信息:协议类型,请求URL,参数,Headers等,其中GET类型Http接口参数在请求URL中以?打头的key=value形式,多个参数之间以&分割

4.2.3 查看Get响应
点击右下方Raw可以查看详细的响应内容,包括status line,headers及body三部分

4.3 分析Post接口
4.3.1 请求示例
我们在运行Fiddler后,使用Chrome浏览器打开百度首页后,点击“登录”按钮,输入用户名密码后完成登录
4.3.2 查看Post请求
在fiddler中,点击登陆请求可以查看本次登录请求信息

点击右侧Raw可以查看Post请求详细信息,包括request line,headers及body三部分

4.2.3 查看Post响应
点击右下方Raw可以查看详细的响应内容,包括status line,headers及body三部分。

5. 模拟Http请求
5.1 打开调试页面
运行Fiddler,打开右侧Composer

5.1 模拟Get请求
Get请求相对比较简单,填入URL及必须的Headers信息即可,如我们模拟百度搜索词语lovesoo,流程如下:
选择接口类型为GET,填入URL:https://www.baidu.com/s?wd=lovesoo,后点击Execute执行即可

在Fiddler左侧点击本次Get请求,就可以看到请求及响应详细内容:
5.2 模拟Post请求
这里我们选取一个相对比较简单的Post接口,博客园首页获取编辑推荐文章的editor_pick_count字段接口:

该接口只需要传入一个参数即文章URL,流程如下:
选择接口类型为POST,填入URL:https://www.cnblogs.com/aggsite/EditorPickStat,在Request Body填入{"url":"http://www.cnblogs.com/hohoa/p/7739271.html"},最后点击Execute执行即可

在Fiddler左侧点击本次Post请求,就可以看到请求及响应详细内容:

初识Http协议抓包工具—Fiddler的更多相关文章
- Fiddler系列教程1:初识Http协议抓包工具
1. Fiddler简介 Fiddler是用一款使用C#编写的http协议调试代理工具.它支持众多的http调试任务,能够记录并检查所有你的电脑和互联网之间的http通讯,可以设置断点,查看所有的“进 ...
- 抓包工具Fiddler的使用
Fiddler 教程 Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发 ...
- 【转】抓包工具Fiddler的使用教程(十二)下:Fiddler抓取HTTPS
在教程十二(上),我们也了解了HTTPS协议,该教程就和大家分享Fiddler如何抓取HTTPS 抓包工具Fiddler的使用教程(十二):[转载]HTTPS协议 再次回忆一下关键内容: iddler ...
- 网络抓包工具 Fiddler
网络抓包工具 Fiddler 下载网址 http://www.telerik.com/fiddler 简单介绍 Fiddler是一个http协议调试代理工具,它能够记录并检查全部你的电脑和互联网之间的 ...
- 抓包工具fiddler下载配置(一):下载/安装&信任证书
简介 Fiddler一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件 ...
- 和我一起学习爬虫之HTTP/HTTPS抓包工具--Fiddler
HTTP/HTTPS抓包工具--Fiddler Fiddler[ˈfɪdlə(r)] 1. HTTP代理神器Fiddler Fiddler是一款强大Web调试工具,它能记录所有客户端和服务器的HTTP ...
- 抓包工具 Fiddler 使用:弱网络环境模拟限速测试流程
转自:http://www.51testing.com/html/80/n-3726980.html 抓包工具 Fiddler 使用:弱网络环境模拟限速测试流程 发表于:2018-6-06 11: ...
- 爬虫(二):抓包工具Fiddler
1. 抓包工具Fiddler 1.1 Fiddler下载与安装 最简单的方法,打开百度,搜索fiddler下载. 下载完毕解压即可,此版本为绿色版. 点击这个即可运行抓包软件. 1.2 Fiddler ...
- 移动端抓包工具——Fiddler(一)
web端抓包一般利用浏览器自带的检查功能(F12),然后看Network项,根据请求响应判断出问题 移动端怎么抓包呢,这里介绍一款常用的抓包工具——Fiddler 前提: 1.必须确保安装fiddl ...
随机推荐
- 在dropwizard中使用feign,使用hystrix
前言 用惯了spring全家桶之后,试试dropwizard的Hello World也别有一帆风味.为了增强对外访问API的能力,需要引入open feign.这里简单在dropwizard中使用fe ...
- day2_操作系统
一.为什么要有操作系统 因为计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输入输出设备组成.现代计算机系统复杂 每位计算机程序员不可能全部的掌 ...
- SVM原理以及Tensorflow 实现SVM分类(附代码)
1.1. SVM介绍 1.2. 工作原理 1.2.1. 几何间隔和函数间隔 1.2.2. 最大化间隔 - 1.2.2.0.0.1. \(L( {x}^*)\)对$ {x}^*$求导为0 - 1.2.2 ...
- mysql 1093错误
1093错误:修改一个表的时候子查询不能是同一个表 解决办法:把子查询再套一层,变成原来表的孙子查询就可以了 例如: INSERT INTO gg SET id3=(SELECT c.a+1 FROM ...
- PHP中foreach循环传值问题
首先看一段代码: <?php $a=array('ab','cd','ef'); $count=3; foreach($a as $key=>$value){ $value='abcdef ...
- GCD之死锁
GCD相当好用,但用不好就会死锁,始终要记着这样一句秘籍: 不要在串行队列放dispatch_sync.dispatch_apply 下面看几个例子 1 2 3 4 5 6 7 8 9 10 11 1 ...
- jquery实现点击div外隐藏div
html <div style="width:100px;height:100px;border:1px solid #ff0" id="div"> ...
- Jenkins定时任务
Jenkins配置定时任务 选中Job名称--配置—构建触发器—勾选“Build periodically” 如图中配置所示:该任务每天上午7点定时执行一次. 官方说明翻译 MINUTE HOUR D ...
- vue学习第一篇 hello world
计划近期开始学习vue.js.先敲一个hello wolrd作为开始. <!DOCTYPE html> <html lang="en"> <head& ...
- 调试 ASP.NET Core 2.0 源代码
在Visual Studio 2017中可以通过符号以及源链接,非常方便对 ASP.NET Core 2.0中源代码进行调试.在这篇文章中,我们将重点介绍如何使用源链接对ASP.NET Core源进行 ...

