fiddler

1.复制URL

图形操作:

 

当然 也有快捷操作:

ctrl+u

---------------------------------------------------------

2.

web session的常用的快捷键

CTRL+A: 选中所有的session;

ESC:  取消选中所有的session;

CTRL+I  反向选中;如果session已选中,则取消,否则选中;

CTRL+X  删除所有的session;

Delete: 删除选中的session;

Shift+Delete 删除所有未选中的session

R  重新执行当前请求

SHIFT+R  多次重复执行当前请求

U: 无条件重新执行当前请求,发送不包含If-Modified-Since 和 If-None-Match的请求头

SHIFT+U 无条件地多次重复执行当前请求。

ALT+Enter 查看当前session的属性;

Insert:切换是否用红色粗体标记选中的session

M  给选中的session添加描述;

------------------------------------------------------

 3.

 

统计选项卡的一些信息含义如下解释:

Request Count 选中的session数;

Unique Hosts 流量流向的独立目标主机数。如果所有选中的流量都发送到相同的服务器上,则不会显示该字段。

Bytes sent:  HTTP请求头和请求体中向外发送的字节总数。后面括号中分别给出了头和body各自的字节数。

Bytes received: HTTP请求头和请求体中接收到的所有字节数。在全部计数后面的括号中给出了请求头和请求体各自的字节数。

Requests started at: Fiddler接收到的第一个请求的第一个字节的时间点。

Responses completed at: Fiddler发送到客户端的最后一个响应的最后一个字节的时间点。

Sequence(clock) duration:  第一个请求开始到最后一个响应结束之间的 “时钟时间”。

Aggregate session duration: 所有选中的session从请求到响应之间的时间的和。

DNS Lookup time: 所有选中的session解析DNS所花费的时间的总和。

TCP/IP Connect duration: 所有选中session建立TCP/IP连接所花费的时间总和。

HTTPS Handshake duration: 所有选中session在HTTPS握手上所花费的时间总和。

Response Codes: 选中session中各个HTTP响应码的计数。

Response Bytes by content-type: 选中session中响应的各个Content-Type的字节数。

Estimated Performance: 选中的流量在不同语种(local)地区和连接方式下所需时间的初步估计。

 

 

下面让我们来系统的学习Filters选项卡吧!界面图如下所示:

选中Filters选项卡左上方的Use  Filters复选框后,就可以使用其中随后给出的过滤器对流量进行过滤了;

选项卡右上方的Actions按钮支持把当前选中的过滤器作为过滤集,加载之前保存的过滤集,并对之前扑捉到的数据流应用当前过滤规则,如下:

Host Filter下拉框支持标示或隐藏在随后的文本框中指定的域名下的数据流;比如如下下拉框如下:

Not Host Filter 的含义是不过滤host的请求;

Hide the following Hosts的含义是:隐藏下面文本框中指定的域名下的数据流;如下所示:

Show only the following Hosts的含义是:只显示下面文本框指定的域名的数据流,如下所示:

如上我访问的是淘宝网,那么只会显示对a.tbcdn.cn和g.alicdn.cn的数据流;如上所示:

注意:文本框不会自动通过通配符匹配子域名。这意味着如果你设置了 show only the following hosts , 并且在文本框中只写了alicdn.com, 那么将无法看到g.alicdn.com或者www.alicdn.com域名下的所有数据流,如下所示:

我们需要添加通配符  *.alicdn.com,就可以看到所有子域名下的数据流;如下所示:

如果我们想查看根目录下alicdn.com下的数据流,可以把通配符改成如下 *alicdn.com即可,这样就可以包含所有域名以alicdn.com结束的数据流。前面不要加点;如下所示:

客户端进程(Client Process

进程过滤器控制显示那个进程的数据流。正在运行的应用进程和Fiddler在相同的主机时,Fiddler才能判断出是那个进程发出的哪个请求;

下拉框 Show only traffic from的列表中包含了系统中当前正在运行的所有进程,如下所示:

如果我们选中上面的某个进程的话,就会只显示该进程下的数据流,比如我现在选中的是淘宝进程;

Show only Internet Explorer 选项只显示进程名称以IE开头或请求的User-Agent头包含compatible;MSIE的数据流;

Hide traffic from Service Host选项会隐藏来自进程svchost.exe的数据流,svchost.exe进程是个系统进程,会同步RSS Feeds以及执行其他后台网络活动。其选项一般用的不多。

请求头Request Headers

通过这个选项,你可以添加或删除HTTP请求头,也可以标示包含某些请求头的请求。

Show  only  if URL contains:的含义是支持基于URL显示某些请求;可以使用前缀EXACT来限定大小写敏感;

Hide if URL contains 和上面的是相反的含义,也就是隐藏的意思;

Flag  requests with header选项支持指定某个http请求头名称,如果在web session列表中存在该请求头,会加粗显示该session;

Delete request header 支持指定某个HTTP请求头名称,如果包含该请求头,会删除该请求头;

set request header选项支持创建一个指定了名称和取值的HTTP请求头,或将HTTP请求头更新为指定取值。

断点Breakpoints

Fiddler提供了断点调式功能,session在执行过程中,有2个可能执行中断的时间点;

  1. 从客户端读到请求后,在请求被发送到服务器端之前。
  2. 在服务器端返回响应之后,在响应返回客户端之前。

当程序在请求中断点停止执行时,你可以任意修改该请求,包括URL,headers或body,我们还可以不发送该请求到服务器端,我们可以直接自定义数据返回给客户端,同样,当程序在响应断点停止执行时,我们也可以任意修改响应的内容,包括headers或body。我们先来操作一下如下:

一: 菜单栏 Rules –》 Automatic Breakpoints –》 Before Requests(请求被发送到服务器端之前);或者 After Responses(响应返回客户端之前)

比如我现在后台系统,我点击查询按钮,需要发送一个POST请求,如下:

现在我们再来看看Fiddler中截取请求,如下所示:

如上,红色的小图标是被中断的会话,我们可以左键双击两下,进入Inspectors选项卡,如下所示:

我们在Inspectors –》 WebForms选项卡中可以看到请求中携带的参数如上,我们可以任意修改参数名值对,我们也可以任意添加参数,或者增加cookies或者headers等等,现在我们来看看浏览器中请求响应了没有?如下所示:

现在我们可以再点击黄色小图标 Break on Response 小按钮,如下所示:

可以看到,请求直接返回数据,现在黄色小图标是不能点击的按钮,现在我们可以来修改响应的内容,模拟请求返回,我们也可以自定义返回的json数据,或者我们以后来模拟get或者post请求,我们不需要服务器端(比如php)返回对应JSON数据,我们完全可以使用Fiddler来模拟数据,发送一个空的请求,然后使用fiddler来截取,自己自定义返回json数据,我们可以自定义返回的数据,如下所示,我是修改返回的内容如下所示:

当我们点击Run to Completion按钮后,在浏览器端可以响应数据,接着如下:

然后我们在页面上可以看到修改返回的数据内容如下:

如上是整个断点调式的过程。

如下所示:

当然我们可以在filters里面的选项勾选也可以进行调式如下:

断点选项框支持对包含给定属性的请求或响应设置断点;

Break request on POST选项含义是:会为所有POST请求设置断点;

Break request on GET with query string的含义是:会为所有方法为GET且URL中包含了给定查询条件的请求设置断点。

Break on XMLHttpRequest的含义是:对所有能够确定是通过XMLHTTPRequest对象发送的请求设置断点,由于从数据流上无法判断该请求是否通过XMLHTTPRequest对象发送,因此该方法是通过查找请求头是否为X-Requested-With实现的。

Break response on Content-Type选项的含义是:会为所有响应头Content-Type中包含了指定文本的响应设置响应断点。

响应状态码 Response Status Code

如下所示:

我们可以通过这些选项,基于响应状态码来过滤session;含义如下:

Hide success(2xx)的含义是:会隐藏状态码在200到299之间(包含200和299)的响应。

Hide non-2xx的含义是:会隐藏状态码不在200到299之间的响应。

Hide Authentication demands(401,407)的含义是:会隐藏状态码是401和407的响应,这些响应需要用户进一步确认证书。

Hide redirects的含义是:会隐藏对请求进行重定向的响应。

Hide Not Modified(304) 会隐藏状态条件中状态码为304的响应。

响应类型和大小

通过如上选项,我们可以控制在Web sessions列表中显示那些类型的响应,并堵塞符合某些条件的响应。

我们先来看看上面的下拉框有哪些选项;如下所示:

Show all Content-Types的含义是 不过滤;

Show only IMAGE/* 的含义是 显示Content-Type头是图像类型的Session。

Show  only HTML 的含义是 隐藏Content-Type头不是HTML类型的Session。

Show only Text/css 含义是 隐藏Content-Type头不是text/css类型的Session。

Show only Scripts 含义是 隐藏Content-Type头不是Scripts类型的Session。

Show only xml 含义是 隐藏Content-Type头不是xml类型的Session。

Show only JSON 含义是 隐藏Content-Type头不是JSON类型的Session。

Hide IMAGE/*  含义是 隐藏Content-Type头不是图像类型的Session。

Hide smaller than选项隐藏响应体小于指定的字节数的响应。

Hide larger than选项隐藏响应体大于指定字节数的响应。

Time HeatMap复选框会基于服务器返回给定响应所需要的时间为每个session设置背景颜色。

下面的不一一介绍具体的含义了,一般情况下我们是用不到的,具体的含义看英文也大概知道点,对此这边不一一介绍了;

 

refer:

https://www.cnblogs.com/tugenhua0707/p/4623317.html?utm_source=tuicool&utm_medium=referral

http://www.cnblogs.com/tugenhua0707/p/4637771.html

posted @ 2018-04-17 14:43  笔案  阅读(255)  评论(0编辑  收藏  举报