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个可能执行中断的时间点;
- 从客户端读到请求后,在请求被发送到服务器端之前。
- 在服务器端返回响应之后,在响应返回客户端之前。
当程序在请求中断点停止执行时,你可以任意修改该请求,包括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