简述

Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie、html、js、css等文件,这些都可以让你胡乱修改的意思)。Fiddler要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。

介绍

Fiddler是用C#写的,它包含一个简单却功能强大的基于JScript .NET事件脚本子系统,它是最强大最好用http抓包工具之一,灵活性非常棒,可以支持众多的http调试任务,能记录客户端和服务器之间的http/https请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是Web调试的利器。

Fiddler的官方网站: Fiddler官方网站,提供了大量的帮助文档和视频教程, 这是学习Fiddler的最好资料。

你对HTTP协议越了解,就能越掌握Fiddler的使用方法。你越使用Fiddler,就越能帮助你了解HTTP协议。

Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具。

工作原理

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

使用了Fiddler之后,Web客户端和服务器的请求如下所示:

当打开Fiddler后,会自动设置代理(Google Chrome为列),退出的时候它会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。

启动Fiddler,我们可以在浏览器中访问此链接:

同类产品

  • Firebug

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

  • Wireshark

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

  • Httpwatch

    也是比较常用的HTTP抓包工具,它能够帮助我们分析浏览器与Web服务器之间的交互细节。它不仅能够帮助我们进行HTTP问题的故障排错,还能够帮助我们优化Web网站的性能。但是只支持IE和firefox浏览器(其他浏览器可能会有相应的插件),对于想要调试chrome浏览器的Httpwatch请求,似乎稍显无力,而且它是一款商业软件,而且价格不菲。

  • HttpFox

    可以看作是一个精简版的HttpWatch,它是Firefox的一个插件,免费的,具有HttpWatch的一些最常用的基本功能。支持Firefox,如果需要分析对比不同浏览器处理某些行为的差别,HttpFox并不能帮到你。

使用简介

Fiddler主界面的布局如下:

主界面主要包括四个常用的模块:

  1. 菜单栏:包括捕获http请求,停止捕获请求,保存http请求,载入本地session、设置捕获规则等功能。

  2. 工具栏:包括Fiddler针对当前view的操作(暂停,清除session,decode模式、清除缓存等)。

  3. Web Session面板:主要是Fiddler抓取到的每条http请求(每一条称为一个session),主要包含了请求的url,协议,状态码,body等信息。

    详细字段含义如下:

字段 描述
# HTTP Request的顺序,从1开始,按照页面加载请求顺序递增
Result HTTP响应状态
Protocol 请求使用的协议(HTTP/HTTPS/FTP)
Host 请求地址的域名
URL 请求服务器的路径和文件名,也包括Get参数
Body 请求的大小,以Byte为单位
Caching 请求的缓存过期时间或缓存控制header等值
Content-Type 请求响应的类型
Process 发出此请求的Windows进程及进程ID
Comments 用户通过脚本或右键菜单给此Session添加的备注
Custom 用户可以通过脚本设置的自定义值

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

更多参考

最新文章

  1. how to use panda
  2. 【leetcode】Merge Two Sorted Lists
  3. 【jQuery 冻结任意行列】冻结任意行和列的jQuery插件
  4. 深入浅出 - Android系统移植与平台开发(四)- Android启动流程
  5. 二分查找法 java
  6. [转]Linq中GroupBy方法的使用总结
  7. 创建link server链接服务器碰到的问题及解决办法
  8. uva 10771
  9. 解锁Scott过程中出现的问题及解决办法
  10. JavaEEB2C网上商城前端系统
  11. C#读取Excel的其中一种方式OleDb读取(100万条)--快速大量插入SQL中
  12. Unity3d在Window上使用SAPI进行语音识别
  13. 配置web.xml和glassfish容器实现javaEE表单验证
  14. 浅谈redux-form在项目中的运用
  15. http://codeforces.com/problemset/problem/545/D
  16. 非对称加密技术- RSA算法数学原理分析
  17. LDA主体模型
  18. 一步一步安装SQL Server 2017
  19. Day-01
  20. Android Studio手动打包

热门文章

  1. shell试题
  2. struts2解决动态多文件上传的问题(上传文件与数据库字段一一对应)(转)
  3. STM32使用HAL库实现ADC单通道转换
  4. DQL查询语句使用(select)
  5. UVALIVE 4256 Salesmen
  6. java去除反复的字符串和移除不想要的字符串
  7. Remove Duplicates from Sorted List II 解答(有个比較特殊的case leetcode OJ没有覆盖)
  8. 取消记录tableView选中效果
  9. MongoDB数据修改案例
  10. 搞笑OI