Fiddler4抓包工具使用教程一

摘要:
对于只需要捕获http请求的应用程序,对于希望调试Chrome浏览器的http请求,它可以记录客户端和服务器之间的所有http请求,分析请求数据,设置断点,调试web应用程序,并修改请求数据。Fiddler支持将http代理设置为127.0.0.1,以便可以监视浏览器的所有http请求,Firefox不启用代理(如果您安装了代理和其他代理工具或插件)。

本文参考自http://blog.csdn.net/ohmygirl/article/details/17846199,纯属读书笔记,加深记忆

1、抓包工具有很多,为什么要使用Fiddler呢?原因如下:

a.Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且firebug常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存。

b.Wireshark是通用的抓包工具,但是比较庞大,对于只需要抓取http请求的应用来说,似乎有些大材小用。

c.Httpwatch也是比较常用的http抓包工具,但是只支持IE和firefox浏览器(其他浏览器可能会有相应的插件),对于想要调试chrome浏览器的http请求,似乎稍显无力,而Fiddler2 是一个使用本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler。

2、what is Fiddler?

Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一,它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。

既然是代理,也就是说:客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过Fiddler然后发送到客户端,基于这个原因,Fiddler支持所有可以设置http代理为127.0.0.1:8888的浏览器和应用程序。使用了Fiddler之后,web客户端和服务器的请求如下所示:

Fiddler4抓包工具使用教程一第1张

Fiddler4主界面

Fiddler4抓包工具使用教程一第2张

注:通过主界面右上方的Fiddler4抓包工具使用教程一第3张按钮打开目标浏览器,这样就能监控到该浏览器所有的HTTP请求了,但是你不是这样操作的,那么你就必须修改浏览器的代理,因为如果你的浏览器在开启fiddler之后没有设置相应的代理,则fiddler是无法捕获到HTTP请求的。如下是启动Fiddler之后,IE浏览器的代理设置:

Fiddler4抓包工具使用教程一第4张

以Firefox为例,默认情况下,firefox是没有启用代理的(如果你安装了proxy等代理工具或插件,是另外一种情况),在firefox中配置http代理的步骤如下:

工具->选项->高级->网络->设置  。并配置相应的代理如下:

Fiddler4抓包工具使用教程一第5张

下面开始分析主界面的功能区:

1、Fiddler菜单栏,上图黑色部分,包括捕获http请求,停止捕获请求,保存http请求,载入本地session、设置捕获规则等功能。

2、Fiddler的工具栏,上图黄色部分,包括Fiddler针对当前view的操作(暂停,清除session,decode模式、清除缓存等)。

3、Web Session面板,上图红色部分,主要是Fiddler抓取到的每条http请求(每一条称为一个session),主要包含了请求的url,协议,状态码,body等信息,详细的字段含义如下图所示:

Fiddler4抓包工具使用教程一第6张

Fiddler4抓包工具使用教程一第7张

#栏图标说明

Fiddler4抓包工具使用教程一第8张

另外,注意请求的host字段。可以看到有来自多个www.csdn.net的子域名的响应,说明在大型网站的架构中,大多需要多个子域名,这些子域名可能是单独用于缓存静态资源的,也可能是专门负责媒体资源的,或者是专门负责数据统计的(如pingback)

右键单击其中的一条请求。可以选择的操作有:save(保存请求的报文信息,可以是请求报文,可以是响应报文),将整条会话作为txt保存到桌面,当然你可以保存为zip,可以看到整个回话的内容如下:

4、详情和数据统计板,针对每条http请求的具体统计(例如发送/接受字节数,发送/接收时间,还有粗略统计世界各地访问该服务器所花费的时间)和数据包分析。如inspector面板下,提供headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息:

Fiddler4抓包工具使用教程一第9张

选择单条回话,右键save->selected Sessions->as Txt,打开相关的文件

Fiddler4抓包工具使用教程一第10张

如果想要重新发送某些请求,可以选中这些请求,然后点击工具栏中的Fiddler4抓包工具使用教程一第11张,然后就可以重新发送选中的这些请求。

5、详情和数据统计板

(1)、inspector面板

提供headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息,分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。对于每一部分,提供了多种不同格式查看每个请求和响应的内容。

a、ImageView标签 

JPG 格式使用 ImageView 就可以看到图片,选择一条Content-Type是image/jpeg的回话,点击TextView

 Fiddler4抓包工具使用教程一第12张

b、TextView 标签

HTML/JS/CSS 使用 TextView 可以看到响应的内容。选择一条Content-Type是text/html的回话,点击TextView

 Fiddler4抓包工具使用教程一第13张

c、Raw标签

Raw标签可以查看响应报文和响应正文,但是不包含请求报文

Fiddler4抓包工具使用教程一第14张

d、Auth标签

Auth则可以查看授权Proxy-Authorization 和 Authorization的相关信息

e、Cookies标签

Cookies标签可以看到请求的cookie和响应的set-cookie头信息。

Fiddler4抓包工具使用教程一第15张

(2)、AutoResponder标签

Fiddler比较重要且比较强大的功能之一。可用于拦截某一请求,并重定向到本地的资源,或者使用Fiddler的内置响应。可用于调试服务器端代码而无需修改服务器端的代码和配置,因为拦截和重定向后,实际上访问的是本地的文件或者得到的是Fiddler的内置响应。当勾选allow autoresponser 并设置相应的规则后(本例中的规则是将http://blog.csdn.net/aaa的请求拦截到本地的文件http://localhost:54321/WebForm1.aspx),如下图所示

 Fiddler4抓包工具使用教程一第16张

Fiddler4抓包工具使用教程一第17张

(2)、Statistics面板

HTTP请求的性能和其他数据分析

Fiddler4抓包工具使用教程一第18张

我们可以从中看出一些基本性能数据:如DNS解析的时间消耗是8ms,建立TCP/IP连接的时间消耗是8ms等等信息。

(3)、composer面板

可以模拟向相应的服务器发送数据的过程(不错,这就是灌水机器人的基本原理,也可以是部分http flood的一种方式)。

Fiddler4抓包工具使用教程一第19张

(3)、Filters面板

Filter标签则可以设置Fiddler的过滤规则,来达到过滤http请求的目的。最简单如:过滤内网http请求而只抓取internet的http请求,或则过滤相应域名的http请求。Fiddler的过滤器非常强大,可以过滤特定http状态码的请求,可以过滤特定请求类型的http请求(如css请求,image请求,js请求等),可以过滤请求报文大于或则小于指定大小(byte)的请求

 Fiddler4抓包工具使用教程一第20张

免责声明:文章转载自《Fiddler4抓包工具使用教程一》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#使用技巧之调用JS脚本方法一基于HTML5手机登录注册表单代码下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

公钥、私钥和数字签名(转载)

一、说明 原文地址:http://blog.csdn.net/tabactivity/article/details/49685319 公钥(Public Key)与私匙(Private Key)是通过一种算法得到的一个密匙对(即一个公钥和一个私钥),是非对称加密,公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密会话密匙、验证数字签名,或加...

某数据库管理软件离线注册分析

序列号  libcc.dll sub_1818810F0 4x4=16字节 通过10个字节的数据来生成的。 1. data[0] 和 data[1]必须分别为 `0x68` 和 `0x2A`。这两个字节为Navicat的标志数。 2. data[2]、data[3]和 data[4]可以是任意字节,你想设成什么都行。 3. data[5]和 data[6]...

Tomcat系列(6)——Tomcat处理一个HTTP请求的过程

Tomcat的架构图                图三:Tomcat Server处理一个HTTP请求的过程 处理HTTP请求过程 假设来自客户的请求为:http://localhost:8080/test/index.jsp 请求被发送到本机端口8080 1、用户点击网页内容,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1...

WEB、FTP服务器所有响应码解释(超详细)

  WEBSERVER响应码:404错误提示---找不到文件或者目录不存在 403错误提示--找不到默认首页 505错误提示--服务器内部错误 1xx-信息提示 这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个1xx响应。 100-继续。 101-切换协议。 2xx-成功 这类状态代码表明服务器成功地接受了客户端请求。 2...

Winform的控件以及DataGridView的一般使用

先上学习测试的一些截图 1:获取多个控件上面的值(checkbox,combobox,textbox,radiobutton) 2:获取到选择行的主键ID的value,方便我们进一步CURD 3:获取选择一行的数据以及一行是多少列 4:绑定显示自定义的列头名称 5:选中一行的属性设置操作  6:全部代码 1 using System;...

GDAL源码剖析(九)之GDAL体系架构

       在GDAL库中包含栅格数据的读写,矢量数据的读写,以及栅格和矢量数据的相关算法。下面主要对GDAL中栅格数据和矢量数据的体系架构做一个简单的说明。本人英文很烂,有些部分写出来的东西自己都看不懂,如果不懂,可以看英文。 一、GDAL体系架构       参考GDAL官方文档:http://www.gdal.org/gdal_datamode...