Fiddler 抓包软件的安装和使用

来源:互联网 发布:网络维护这个工作好吗 编辑:程序博客网 时间:2024/05/17 08:46
1. Fiddler 简介
Fiddler 专用抓包工具,工作在应用层,只能对HTTP协议(包含HTTPS协议)进行抓取。
Fiddler 功能丰富,体积小巧,支持HTTP断点调试,且是一款免费的软件。
Fiddler 是用 C# 编写的HTTP协议调试代理工具,它以代理服务器的方式监听你的电脑和互联网之间的http通讯。运行Fiddler后,就会在本地电脑打开8888端口,网络数据流通过Fiddler进行中转时,可以对HTTP/HTTPS数据流进行记录并加以分析,甚至还可以修改发送或接收的数据。

工作原理是Fiddler在浏览器(或者其他使用HTTP协议的进程)和服务器之间扮演代理的角色,所有的HTTP通讯,只要设置了系统代理,就要经过它。

Fiddler以8888端口开本地代理服务器,只要你的HTTP通信将代理设置为本地8888,Fiddler就能帮助你截获数据,然后中转给服务器或者客户端。它最大的一个特点是可以中途修改HTTP通信的内容。

2. Fiddler 的下载与安装
可以直接到 Fiddler 的官网下载,也可以 点击此处 下载。
下载完成后,双击安装程序,按照提示安装即可。安装完成后,打开Fiddler软件,在浏览器中输入 http://127.0.0.1:8888/,如果能够访问,就说明安装成功。
在 Fiddler 软件打开的情况下,如果通过浏览器浏览网页,Fiddler就会抓取到浏览器和服务器之间交互的数据包。

打开 Fiddler 软件后,抓包默认是启用的(如果想要关闭抓包功能,点击菜单栏的File,取消Capture Traffic的勾选即可),一般不需要进行设置,在各种浏览器下 Fiddler 都能顺利工作。实际上,Fiddler与浏览器也无关。如果在某种浏览器中打开网页时,Fiddler 并没有抓取到HTTP通信记录,则只需检查浏览器的代理设置,将浏览器的代理设置为“使用系统代理设置”即可。系统代理是本地的8888端口代理,它是浏览器的默认代理。

使用PHP的curl扩展库,来模拟浏览器的HTTP请求时,curl层的HTTP请求无法被Fiddler抓取,因为curl请求默认是没有使用代理的。如果想让curl请求也能被Fiddler抓取,可以设置curl的选项,将 127.0.0.1:8888 作为本地的代理服务器,即加上如下的选项设置:
curl_setopt($ch,CURLOPT_PROXY,'127.0.0.1:8888'); // 设置本地系统代理服务器 

3. Fiddler 的基本界面
Fiddler 最基本的功能就是抓包和观察数据,下面简单介绍它的界面。
Fiddler 的界面分为左右两栏:
  • 左栏是Sessions记录(注意:它不同于PHP中的session),即 HTTP 会话记录,每个HTTP会话记录了数据包的序号、状态码、协议类型、Host、URL、响应内容的长度、Caching、Content-Type、Process等基本信息。
  • 右栏划分为上下两个部分,上面是HTTP请求时的数据,下面是HTTP响应时的数据。常用的三种查看数据的方式为:Raw(HTTP协议标准格式)、Header(header头格式)、HexView (十六进制数据流)。

在Sessions栏里,选择某一条会话记录后,右击鼠标,通过弹出的快捷菜单可以对其执行保存、标记、删除、重放和注释等操作。
下面介绍几个常用的操作:
保存:保存HTTP会话数据,便于以后查看或者做资源重定向。
标记:标记醒目的颜色方便查看。
删除:删除不重要的会话记录。
重放:再次执行该请求
注释:给该会话记录添加注释,注释将显示在该Session的Comment列。

另外,在对HTTP协议进行分析时,对于image、css、javascript类型的静态资源的请求通常无助于我们进行协议分析,但这类Session(会话请求)往往还比较多,这就干扰到了我们寻找需要的会话。故需要删除这类会话记录。可以通过鼠标选择后删除,也可以通过Fiddler的命令窗口来选择后删除。

在Sessions栏的最下面有一个黑色的命令窗口,在命令窗口输入 select image,会选中所有image类型的session,按delete键删除;输入 select css,会选中所有的css资源的session,按delete键删除;输入 select javascript,会选中所有的javascript资源的session,按delete键删除。如果要删除所有的session,在命令窗口输入 cls,回车即可。

4. 使用 Fiddler 进行 HTTP 断点调试
Fiddler的断点调试功能分为两种:After Responses(响应后断点)和 Before Requests(请求前断点)。默认是禁用调试功能的。

(1)After Responses
响应后断点的原理是:在服务器响应到达Fiddler后,转发给浏览器客户端之前,设置断点,这样,我们就可以对响应的原始数据进行修改,然后,再将修改后的结果返回给客户端。
操作方法如下:
首先,点击菜单栏的 Rules → Automatic Breakpoints → After Responses,开启响应后断点调试功能;其次,在浏览器中访问某个URL,可看到响应一直被挂起;然后,到 Fiddler 右侧的响应数据窗口,修改原始的(Raw)响应数据;最后,点击 Run to Completion,将修改后的响应数据返回给客户端。

(2)Before Requests
请求前断点的原理是:在浏览器客户端把请求发送给Fiddler后,转发给服务器之前,设置断点,这样,我们就可以修改HTTP请求相关的原始数据,然后,再将修改后的请求发送给服务器。
操作方法如下:
首先,点击菜单栏的 Rules → Automatic Breakpoints → Before Requests,开启请求前断点调试功能;其次,在浏览器中访问某个URL,可看到请求一致被挂起;然后,到 Fiddler 右侧的请求数据窗口,修改原始的(Raw)请求数据;最后,点击 Run to Completion,将修改后的请求发送给服务器。

这两个功能对于调试Ajax程序特别有用,比如:修改请求内容、GET数据、POST数据、header头、cookie等等。

1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 有米6x触摸屏不好使怎么办? 小米5s屏幕触摸没反应怎么办 苹果5s主屏幕设置没反应怎么办 华为畅享5s接听不灵怎么办 红米3s忘记锁屏密码怎么办 华为畅享5s手机打不开网络怎么办 苹果手机突然关机开不了机怎么办 苹果手机掉地上开不了机怎么办 oppo手机突然黑屏开不了机怎么办 苹果6s为什么开不了机怎么办 苹果手机还原出厂设置白苹果怎么办 捡到苹果6s手机怎么办才能自己用 苹果6s玩游戏卡住了怎么办 苹果6s进水换屏后指纹失灵怎么办 苹果手机6s声音按键失灵怎么办 苹果手机触屏失灵怎么办5s 苹果六摔了一下屏幕失灵怎么办 荣耀5c进水屏幕触摸屏失灵怎么办 生活玩家打不了风云蝙蝠岛怎么办啊 企鹅号在注册的时候选错领域怎么办 博士超期学信网的信息被删除怎么办 电脑账号删除后电脑开不了怎么办 lol不小心融错了皮肤怎么办 农村医保交费了没有录入系统怎么办 电动三轮车在泗阳被交警扣了怎么办 环评证实际的设备少报了怎么办 别人盗用了自己的社保卡怎么办 如果有人盗用社保卡信息住院怎么办 丈夫出轨生下孩子妻子该怎么怎么办 l老公偷着儿子消失了怎么办 老婆出轨怀孕现在流了他跑了怎么办 交通银行贷款资金户里面的钱怎么办 新车2个月出现好多小毛病怎么办 地上终末之日尸潮破坏房子怎么办 初一数学期未考试考了77分怎么办 生育服务单再婚婚史情况怎么办 我孩子的数学一直很差怎么办呀! 扶桑花的叶子出斑点发黄怎么办 高二的学生成绩下降特别大怎么办 六个月大的宝宝咳嗽伴有气喘怎么办 昨天奶用力吸今天好疼怎么办