`

【HTTP】Fiddler(三)- Fiddler命令行和HTTP断点调试

阅读更多

一. Fiddler内置命令。

上一节(使用Fiddler进行抓包分析)中,介绍到,在web session(与我们通常所说的session不是同一个概念,这里的每条HTTP请求都成为一个session)界面中可以看到Fiddler抓取的所有HTTP请求.而为了更加方便的管理所有的session, Fiddler提供了一系列内置的函数用于筛选和操作这些session(习惯命令行操作linux的童鞋应该可以感受到这会有多么方便).输入命令的位置在web session管理面板的下方(通过快捷键alt+q可以focus到命令行).

Fiddler内置的命令有如下几种:

1. select命令。

选择所有相应类型(指content-type)为指定类型的HTTP请求,如选择图片,使用命令select image.而select css则可以选择所有相应类型为css的请求,select html则选择所有响应为HTML的请求(怎么样,是不是跟SQL语句很像?)。如图是执行select image之后的结果:

2. allbut命令。

allbut命令用于选择所有响应类型不是给定类型的HTTP请求。如allbut image用于选择所有相应类型不是图片的session(HTTP请求),该命令还有一个别名keeponly.需要注意的是,keeponly和allbut命令是将不是该类型的session删除,留下的都是该类型的响应。因此,如果你执行allbut xxxx(不存在的类型),实际上类似与执行cls命令(删除所有的session, ctrl+x快捷键也是这个作用)

3. ?text命令

选择所有 URL 匹配问号后的字符的全部 session

4. >size 和 <size命令

选择响应大小大于某个大小(单位是b)或者小于某个大小的所有HTTP请求

5. =status命令

选择响应状态等于给定状态的所有HTTP请求。

例如,选择所有状态为200的HTTP请求:=200

6. @host命令

选择包含指定 HOST 的全部 HTTP请求。例如:@csdn.net

选择所有host包含csdn.net的请求

7. Bpafter, Bps, bpv, bpm, bpu

这几个命令主要用于批量设置断点

Bpafter xxx: 中断 URL 包含指定字符的全部 session 响应

Bps xxx: 中断 HTTP 响应状态为指定字符的全部 session 响应。

Bpv xxx: 中断指定请求方式的全部 session 响应

Bpm xxx: 中断指定请求方式的全部 session 响应。等同于bpv xxx

Bpu xxx:与bpafter类似。

当这些命令没有加参数时,会清空所有设置了断点的HTTP请求。

 更多的其他命令可以参考Fiddler官网手册。

 

二. 使用Fiddler进行HTTP断点调试。

这是Fiddler又一强大和实用的工具之一。通过设置断点,Fiddler可以做到:

1. 修改HTTP请求头信息。例如修改请求头的UA, Cookie, Referer 信息,通过“伪造”相应信息达到达到相应的目的(调试,模拟用户真实请求等)。

2. 构造请求数据,突破表单的限制,随意提交数据。避免页面js和表单限制影响相关调试。

3. 拦截响应数据,修改响应实体。

为什么以上方法是重要的?假设js前端程序员和服务器程序员是分工合作的,js程序员想要调试Ajax请求的功能,这样便不必等待服务器端程序员开发好所有接口之后再开始开发js端的ajax请求功能,因为通过“模拟”真实的服务器端的响应,便可以保证功能的正确性,而服务器端开发程序员,只要保证最终的响应是符合规定的即可。这大大简化了程序开发的效率,当然也降低了不同业务线程序员联调的难度。

有两种方法设置断点:

1.fiddler菜单栏->rules->automatic Breakpoints->选择断点方式,这种方式下设定的断点会对之后的所有HTTP请求有效。

有两个断点位置:

a. before response。也就是发送请求之后,但是Fiddler代理中转之前,这时可以修改请求的数据。

b.after response。也就是服务器响应之后,但是在Fiddler将响应中转给客户端之前。这时可以修改响应的结果。

2.命令行下输入。Bpafter xxx或者bpv,bpu,bpm等设置断点。这种断点只针对特定类型的请求。

我们以本地的web项目为例,演示如何简单的设置HTTP断点:

1.首先设置Firefox的代理,使之可以抓取所有的HTTP请求(localhost的请求,也可以在filter中设置只抓取intranet请求),设置如下图所示:

 

2. 这时用web打开本地的项目。页面的内容为:

 

4. 设置响应后断点(after response breakpoint),可以通过命令行设置:bpafter localhost。键入回车之后,web再次访问文件,通过Fiddler的web session界面可以看到,请求已经被挂起来了,而web浏览器也一直处于加载的状态。观察右侧的inspector面板下,也出现了新的东西:

 

这时我们就可以修改响应的信息了。修改过程为:

切换到textView子面板,选择需要修改的部分,然后点击 “run to complete“,便可回送修改后的响应。假设我们修改后的内容如下:

 

点击执行后,打开刚刚的web界面。可以看到的页面的变化。

 

可见,页面的响应已经有了相应的变化。这就是响应后断点。当然实际应用中,断点的设置和响应的修改会比这复杂的多,这里只是基本的示例。

终止断点的方式有:

1. 在inspector界面点击“run complete“即会终止本次HTTP请求的断点。

2. 输入go命令,也会使得当前的请求跳过断点。

3. 在rules->auto breakpoint中disabled断点即可。

总之,Fiddler的断点功能非常强大,关于它的进一步学习和应用,需要一个不断积累和摸索的过程。

 

本文转载:http://blog.csdn.net/ohmygirl/article/details/17855031

作者:ohmygirl

 

分享到:
评论

相关推荐

    fiddler-linux.zip

    - **规则定制**:用户可以编写自定义的JavaScript脚本来修改请求或响应,实现对网络流量的动态控制,如修改请求头、重定向、断点调试等。 - **性能分析**:Fiddler提供了详细的性能统计信息,如请求响应时间、带宽...

    FIDDLER-前端开发值得拥有.pdf

    Fiddler是一个功能强大的Web调试代理,能够记录所有客户端和服务器间的HTTP请求,允许用户监视、设置断点、甚至修改输入输出数据。Fiddler包含了一个强大的基于事件脚本的子系统,并且能够使用.NET框架语言扩展。...

    fiddler基础文档

    2. 在Fiddler的命令行中输入`bpu http://passport.cnblogs.com/login.aspx`以设置断点。 3. 输入错误的用户名和密码并尝试登录。 4. Fiddler会自动中断这次会话,此时可以在Inspector面板的WebForms部分修改用户名和...

    Fiddler文档

    - **定义与功能**:Fiddler是一款强大的Web调试工具,能够记录客户端与服务器之间的HTTP/HTTPS请求,支持监视、设置断点以及修改输入输出数据等功能。 - **官方资源**:官方网站([www.fiddler2.com]...

    fiddler使用手册

    Fiddler 能够记录客户端与服务器之间传递的所有 HTTP(S) 请求,并且提供了多种功能,例如分析请求数据、设置断点、调试 Web 应用、修改请求与响应等。因此,Fiddler 成为了 Web 开发者和测试人员的必备工具之一。 *...

    Fiddler 教程.docx

    - **Fiddler**:一款强大的Web调试工具,能够记录客户端与服务器间的所有HTTP/HTTPS请求,支持监视、设置断点及修改输入输出数据等功能。 - **官方网站**:提供丰富的帮助文档与视频教程,适合初学者入门。 - **工作...

    fiddler4_3259_python抓包_fildder结合python_fiddler_python开发工具_fiddle

    **Fiddler4_3259:Python抓包与Fiddler结合的实战指南** 在互联网开发过程中,网络请求...通过深入学习和实践,你将能够熟练掌握`Fiddler4`和`Python`的结合使用,提升网络开发和调试的效率,解决各种复杂的网络问题。

    Fiddler快速上手教程.docx

    Fiddler是一款功能强大的Web调试工具,能够帮助用户记录所有客户端与服务器之间的HTTP和HTTPS请求,从而实现对网络请求的监视、断点设置及数据修改等功能。无论是对于开发者还是测试工程师而言,Fiddler都是一个不可...

    fiddler2教程

    - **使用命令行工具**:Fiddler提供了一套命令行工具`QuickExec`,可以帮助快速执行各种操作,如设置断点、过滤会话等。 - **脚本编写**:对于更复杂的操作需求,还可以编写FiddlerScript脚本来自动化处理过程。 ##...

    fiddler抓包教程

    - **设置断点**:Fiddler允许用户在请求发送之前或响应到达之后设置断点,这有助于调试特定的数据流。 - **修改Request**:在请求发送之前修改请求内容,如更改URL、Header或Body数据。 - **修改Response**:在...

    Fiddler使用文档

    Fiddler 使用文档 Fiddler 是最强大最好用的 Web 调试工具之一,它提供了详细的说明了 Fiddler 的使用...Fiddler 是一个功能强大的 Web 调试工具,能够帮助开发人员和测试人员更好地 debug 网页问题和了解 HTTP 协议。

    fiddler使用手册.docx

    2. **断点调试**:用户可以设置断点,暂停请求或响应的处理,以便于分析特定阶段的网络状态。 3. **数据修改**:Fiddler允许修改请求和响应的内容,这在测试和调试中非常有用,可以模拟不同情况下的服务器响应。 4. ...

    Fiddler 教程 文档

    尽管Fiddler非常强大,但还有其他类似工具可供选择,例如Wireshark(网络封包分析工具)用于更底层的网络流量分析,Charles(主要用于iOS和Android开发)也是一款流行的HTTP调试代理,而Postman则是专门用于API测试...

    Fiddler使用帮助文档

    Fiddler 是一款非常强大的 Web 调试工具,它不仅可以捕获和监控 HTTP(S) 会话,还提供了丰富的功能,如断点调试、自动响应、会话过滤等,极大地简化了 Web 开发和测试过程。通过深入了解和掌握 Fiddler 的使用方法,...

    Fiddler学习

    Fiddler是一款功能强大的Web调试工具,它能够记录客户端和服务器之间的所有HTTP和HTTPS请求,使用户能够监视、设置断点甚至修改输入输出数据。它对于开发人员和测试人员都极为有用,能够帮助他们定位和解决问题。 ...

    Fiddler使用说明.docx

    它不仅记录请求,还能进行调试、设置断点、修改请求和响应数据,是Web开发者和测试人员的必备工具。 **Fiddler工作原理** Fiddler作为代理服务器,监听本地IP127.0.0.1的8888端口。当Fiddler退出时,会自动清除...

    fiddler使用教程.docx

    Fiddler 是一款功能强大的 HTTP 媒介工具,能够对 HTTP 流量进行捕获、修改和重放,广泛应用在 Web 开发、测试、调试和安全领域中。本文档为 Fiddler 使用教程,旨在帮助用户快速掌握 Fiddler 的基本使用和高级特性...

Global site tag (gtag.js) - Google Analytics