Fiddler(Web/HTTP调试利器)

摘要:
简而言之,Fiddler是一个http协议调试代理工具,Fiddler的数据(指cookie、html、js、css和其他文件、分析请求数据、设置断点、调试web应用程序、修改请求数据和模拟HTTP请求)是不够的。对于只需要捕获HTTP请求的应用程序,它可以帮助我们分析浏览器和web服务器之间的交互细节,但只支持IE和Firefox浏览器(其他浏览器可能具有相应的插件)。
简述

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开始,按照页面加载请求顺序递增
ResultHTTP响应状态
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请求的请求报文的信息。

更多参考

免责声明:文章转载自《Fiddler(Web/HTTP调试利器)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇jQuery.ajax() datatype:“json" 转换失败Perl文件系统下篇

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

相关文章

Postman安装教程

                                                            Postman 安装教程 在web开发和一些需要模拟HTTP请求的时候,Postman非常有用。 因为实习的时候接触到了,感觉确实非常好用。就记录下来。 以下是参考其他博主的博文,地址:http://www.cnblogs.com/zqy...

homebrew & brew cask使用技巧及Mac软件安装

homebrew 安装 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 命令 安装软件:brew install 软件名,例:brew install wget 搜索软件:brew search 软件名...

Gradle 实战(1)—— 配置环境变量

背景:Gradle 是一款构建工具,继 Ant 、Maven 之后的现代构建工具,我会在接下来的博文中陆续介绍,我在工作中是如何使用 Gradle 的。 下载 Gradle 下面是 Gradle 的官方网站地址: Gradle l Modern Open-Source Enterprise Build Automation - Gradle http:...

极简配置phpstorm+xdebug进行断点调试

以前调试的时候各种var_dump()就能得到结果,现在入手别人开发的工作,由于不了解业务和代码逻辑,又要去修改bug,就造成了修改bug效率低,所以又拾起来了xdbug,顺便总结了一下phpstor配合xdebug的基本配置   window7+phpstudy >>> php5.6 + nginx   1.停止phpstudy,不要直...

Chrome打开标签页预览

类似于Microsoft Edge浏览器上的标签页缩略图预览非常方便,其实现在谷歌浏览器正在测试相关的功能,如果想提前体验,就在地址栏输入“chrome://flags”并按下回车键,点击右上角的菜单按钮并选择“查找”命令,在弹出的搜索框中输入关键词“Tab HoverCard Images”,查找到这个选项后点击列表中的“Enabled”选项,随后重新启...

Ansible工作流程详解

1:Ansible的使用者           ------>Ansible的使用者来源于多种维度,(1):CMDB(Configuration Management Database,配置管理数据库),CMDB存储和管理着企业的IT架构中的各项配置信息,是构建ITIL项目的核心工具,运维人员可以组合CMDB和Ansible,通过CMDB直接下发指令...