版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Fiddler调试权威指南中文版目录TOC\h\h第1章引言\h1.1起源\h1.2快速入门\h第2章探索Fiddler\h2.1入门\h2.2FIDDLER用户界面\h2.3FIDDLER主菜单\h2.4FIDDLER的工具栏\h2.5QUICKEXEC\h2.6应用热键\h2.7统计选项卡\h2.8FILTERS选项卡\h2.9TIMELINE时间轴选项卡\h2.10自动响应(AUTORESPONDER)选项卡\h2.11TEXTWIZARD\h2.12COMPOSER选项卡\h2.13Log选项卡\h2.14FindSession窗口\h2.15HostsRemapping工具\h第3章技巧和概念\h3.1使用Fiddler重定向数据流\h3.2Session比较\h3.3断点调试\h第4章配置Fiddler和客户端\h4.1Fiddler选项\h4.2HEADER编码设置\h4.3PREFERENCES(偏好)\h4.4配置客户端\h4.5内存使用和Fiddler的“位数”\h4.6缓存和流式数据流\h4.7HTML5WEBSOCKETS\h4.8Fiddler和HTTPS\h4.9为HTTPS解密配置客户端\h4.10Fiddler和FTP\h4.11Fiddler和Web认证\h第5章Inspectors\h5.1概览\h5.2授权和认证(AUTH)\h5.3缓存(CACHING)\h5.4COOKIES\h5.5HEADERS\h5.6HEXVIEW\h5.7IMAGEVIEW\h5.8JSON\h5.9RAW\h5.10SYNTAXVIEW\h5.11TEXTVIEW\h5.12TRANSFORMER\h5.13WEBFORMS\h5.14WEBVIEW\h5.15XML\h第6章扩展\h6.1概览\h6.2JAVASCRIPTFORMATTER\h6.3GALLERY\h6.4CONTENTBLOCKER\h6.5TRAFFICDIFFER\h6.6FIDDLERSCRIPT编辑器\h6.7SAZCLIPBOARD\h6.8ANYWHERE\h第7章保存、导入和导出数据流\h7.1Session的ARCHIVEZIP(SAZ)文件\h7.2FIDDLERCAP\h7.3Fiddler的Viewer模式\h7.4导入和导出Session\h第8章FiddlerScript\h8.1使用FiddlerScript扩展Fiddler\h8.2FIDDLERSCRIPT函数\h8.3FIDDLERSCRIPT及自动化工具\h8.4扩展Fiddler的UI菜单\h8.5扩展FiddlerUI——在WebSession列表中添加列\h8.6FIDDLEROBJECT函数\h8.7引用程序集ASSEMBLIES\h8.8示例脚本\h第9章通过.NET代码扩展Fiddler\h9.1通过.NET扩展Fiddler\h9.2和Fiddler对象交互\h9.3Preferences编程\h9.4构建扩展安装程序\h9.5构建Inspectors\h9.6处理HTTP压缩和分块传输\h9.7构建扩展\h9.8构建导入导出转换器(TRANSCODERS)\h第10章FiddlerCore\h10.1概述\h10.2FIDDLERAPPLICATION类\h10.3FIDDLERCORE的常见任务\h附录A故障排除\hA.1缺失数据流\hA.2安全软件的干扰\hA.3代理设置被破坏\hA.4重新设置Fiddler\hA.5解决证书问题\hA.6清除Fiddler所有运行痕迹\hA.7Fiddler崩溃信息提示关于“ConfigurationSystem”\hA.8Fiddler会随机停止捕捉数据流\hA.9Fiddler在流式发送RPC-over-HTTPS的数据流时“抛锚”\h附录B命令行语义\hB.1选项标志\hB.2实例\h附录CSession标志位\hC.1Session显示标志位\hC.2断点和编辑标志位\hC.3网络标志位\hC.4认证标志位\hC.5客户端信息标志位\hC.6性能模拟标志位\hC.7HTTPS标志位\hC.8RequestComposer标志位\hC.9其他标志位\h附录DPreferences\hD.1网络Preferences\hD.2HTTPSPreferences\hD.3FiddlerUIPreferences\hD.4FiddlerScriptPreferences\hD.5TextWizardPreferences\hD.6RequestComposerPreferences\hD.7路径配置\hD.8其他标志位\hD.9扩展Preferences\hD.10RawInspector\hD.11JavaScriptFormatter\hD.12证书生成器(CertificateMaker)第1章
引言1.1起源首先,坦白地说,开发FiddlerWeb调试器时,并没有什么伟大的愿景或期望—要做一个全世界最受欢迎的调试代理。它只是由具体需求触发,应运而生。我从未打算构建一个功能如此灵活而强大的复杂平台。因为它的复杂性,我不得不花费九个月的时间来写这本书,为的就是介绍如何充分利用Fiddler。我们真的做到了!在深入介绍技术细节之前,首先分享一下Fiddler背后的故事。1999年春天,我还是马里兰大学的学生,得到了微软的一个新团队的程序经理(ProgramManager)职位的面试机会。在最后一轮面试中,面试官的第一个问题是“HTTP是如何工作的?”我对此只是略知皮毛,因此给了个不完整也不太准确的回答,但还不至于让自己很难堪。从那个暑假开始,我的工作是参与第一版SharePoint的开发。我偶尔会使用MicrosoftNetworkMonitor(NetMon)查看网络数据流。MicrosoftNetworkMonitor(NetMon)是一个功能强大的数据包探嗅器(packetsniffer),但很原始很难用。2001年暑假刚开始,我正式加入微软公司,工作职位是OfficeClipArtorganizer客户端和网站的程序经理。当时,我所在团队的大多数开发和测试人员都不熟悉Web开发,他们之前主要是用C和C++实现本地运行的应用。很快,调试过程过于繁琐这个问题就凸显出来—很多同事都不愿意使用NetMon。我甚至看到一些开发人员用如下方式调试HTTP请求—把鼠标停留在VisualStudio的某些变量上,查看十六进制形式的原始数据流,如图1-1所示。图1-1在过去几年,我编写了一些小工具,因此有信心实现一个使得Web调试变得简单的工具。最初的方案是基于已有的C++代理服务器,对其做些修改,从而可以把HTTP流输出到系统控制台,如图1-2所示。图1-2这种方案说它多差都不为过—这个代理无法处理安全数据流或认证协议。非文本形式的内容的显示也是个问题——可笑的是,该工具还会把二进制内容当成ASCII码显示。老式控制台用户可能还记得八进制的0x07代表的是字符“bell”,因此当控制台显示0x07时,系统就会发出声响。因此,这个调试代理发布后,由于测试人员使用时会遇到二进制数据流,OfficeOnline团队的走廊就会不断响起像拉斯维加斯的赌场那样的声响。虽然有烦人的缺陷,但这个工具还是很受欢迎,这激发我开始考虑下一个版本。我使用BorlandDelphi快速实现了一个小演示程序,BorlandDelphi是我当时工作时最常用的开发工具。其彩色UI界面是Fiddler的最终外观的基础,如图1-3所示。图1-3然而,在考虑了使用本地代码编写代理服务器所涉及的安全和内存管理问题后,我决定使用C#语言来实现新版本,该语言是由VisualStudio团队开发的,我一个很好的朋友加入了该团队。于我而言,通过.NET从零开始实现HTTP代理服务器面临两大挑战:一是我不是很了解HTTP是如何工作的;二是我不会用C#。幸运的是,花钱买几本书,以及利用大量的周末闲余时间,我很快克服了这两个不足。其中有两本书是我的良师益友:《HTTP:TheDefinitiveGuide》和《C#Cookbook》。通过一章章的学习,我了解了HTTP是如何工作,以及如何用C#.NET编程,也开始慢慢地实现Fiddler。大约半年后,我完成了Fiddler的第一个版本,如图1-4所示。图1-4同样,这个版本也存在很多不足(错误也是不计其数),但是同事们都积极采用了它,因为之前的版本不断地发出蜂鸣声,他们电脑的音箱都快崩溃了。随后几年,Fiddler有了很大改进,它包含两个扩展模块,一是自动生成和修改响应的机制,二是支持加密的(HTTPS)数据流、FTP和HTML5WebSockets。关于本书历经九年以及无数次版本更新,Fiddler已经发展成一个强大的工具和平台,可以执行各种任务。它有一个可扩展性相当强大的模型,以及一个组件开发者社区,他们又进一步增强了Fiddler作为性能、安全和负载测试工具的价值。从过去几年的电子邮件咨询、在线讨论小组以及无数次的会议来看,大多数用户只是用到了Fiddler很少的一部分功能。我开始意识到如果有关于该工具的完整指南,很多用户可以更好地利用它。本书就是由此而来。作为Fiddler的作者,我发现写这本书既简单又具有挑战性。其简单性在于我非常了解Fiddler,比如其底层实现,而且对于一些晦涩的细节查看源代码就可以了解。其挑战性在于每当我选择写某个有趣的场景或功能时,将迫使我对其进行深入的思考。通常情况下,我写着写着就“跑偏”了,转而写代码对Fiddler进行改进,改进之后,原来的主题通常只需要很少的篇幅来介绍甚至不再需要介绍。最后,我重写了本书的大部分内容和Fiddler工具本身。这个过程很漫长,但工具和书之间彼此也相得益彰。本书的出版时间和Fiddler版本的发布时间基本一致,大致都在2012年初夏。如果你使用的是更高版本的Fiddler,你会发现一些细微差别,但其核心概念一致。本书几乎涵盖了Fiddler和FiddlerCore的每个主题,但它不是关于HTTP、SSL、HTML、WebServices或深入了解Fiddler所需的很多其他主题的教程。如果你想深入了解网络协议,我建议你查看以下资料,我在开发Fiddler的过程中一直在参考这些资料:HypertextTransferProtocol--HTTP/1.1,网址为\h/rfc/rfc2616.txt;DavidGourley的《HTTP:TheDefinitiveGuide》;BalachanderKrishnamurthy和JenniferRexford的《WebProtocolsandPractice:HTTP/1.1,NetworkingProtocols,Caching,andTrafficMeasurement》;StephenA.Thomas的《SSL&TLSEssentials:SecuringtheWeb》。关于本书的阅读方式,你可以从头到尾阅读本书,也可以通过目录和索引来查找自己感兴趣的话题。我建议你阅读本书的所有章节,即使其中某些章节可能和你不相关,因为每章都包含了一些独有的建议和技巧。我很推崇从下一节开始阅读,它介绍了一些术语和基础概念,可以帮助你更好地了解Fiddler以及本书。希望你喜欢本书!1.2快速入门本节将介绍Fiddler的一些基础知识,这些内容可帮助你入门并为本书后续的学习奠定基础。1.2.1基本概念Fiddler是一款基于Windows系统的专用代理服务器软件。本地运行的程序,如Web浏览器、Office应用程序以及其他客户端应用,可以把HTTP和HTTPS请求发送给Fiddler,Fiddler通常把这些请求转发给Web服务器。然后,服务器把这些请求的响应返回给Fiddler,Fiddler再把这些响应转发给客户端。几乎所有使用网络协议的程序都支持代理服务器,因此Fiddler几乎适用于所有应用。当启动Fiddler来捕获请求和响应时,Fiddler会自动注册为WindowsInternet(WinINET)网络服务代理,并请求所有应用把请求发送给它,如图1-5所示。图1-5有些应用不会自动识别Windows网络配置,要想让Fiddler捕获其数据流,需要手工配置这些应用。也可以对Fiddler进行配置,使它能够支持更罕见的场景,包括服务器到服务器(如WebServices)和设备到服务器(如iPad或Windows手机)的数据流。默认情况下,Fiddler被设计成能够自动挂接到(chainto)先前已经部署的各种上游代理(upstreamproxy),通过这种方式,Fiddler能够在已经使用了代理服务器的网络环境中正常工作。Fiddler可以捕获所有的本地数据流,而且支持很多过滤器(filter)。这一特性使得用户既可以隐藏不感兴趣的数据流,也可以高亮显示(使用颜色或字体选项)感兴趣的数据流。过滤器的过滤条件可以是数据流的来源(如特定的客户端进程),也可以是数据流本身的某些特征(如该数据流所绑定的主机名或服务器返回内容的类型)。Fiddler的扩展模型功能丰富,既有简单的FiddlerScript,也包含强大的功能插件(Extensions),这些扩展可以使用任意一种.NET语言来开发。Fiddler还支持几种特殊的扩展类型,其中最流行的是Inspector(稽查员)。顾名思义,Inspector的特点在于支持查看单个请求或响应。Inspector可以做成支持所有响应类型(如HexViewInspector),也可以定制为只支持特定类型(如JSONInspector)。如果你是开发人员,可以通过类库FiddlerCore把Fiddler的核心代理引擎植入到自己的应用中。Fiddler可以解密HTTPS数据流,使用“中间人(man-in-the-middle)”\h\h①解密技术来显示和修改这些在网络上不可读的请求。要做到没有安全告警的无缝调试,可以把Fiddler的根证书(rootcertificate)安装到系统或Web浏览器的受信任的证书库中。一个Web会话(WebSession)代表客户端和服务器之间的一个事务。Fiddler界面中左侧边栏的Web会话列表中的一个条目就是一个会话。一个会话对象包含一个请求和一个响应,分别表示客户端发送给服务器的数据以及服务器返回给客户端的数据。会话对象还会维护一组标志位(Flag),用于保存会话的元数据以及在处理该会话过程中记录的时间戳对象(Timer)。代理服务器并非局限于查看网络流量——顾名思义,Fiddler这个名字的含义在于它可以“随意玩弄(fiddle)”发送出去的请求和接收进来的响应。可以设置请求或响应断点以手工修改数据流。到达设置的断点后,Fiddler会暂停会话,以便用户手工修改请求和响应。Fiddler还支持在其内部运行脚本或扩展来改写数据流。默认情况下,Fiddler是在缓冲模式(bufferingmode)下工作的,即Fiddler是接收到服务器的完整响应之后才将响应的内容返回给客户端。如果启用流模式(streamingmode),Fiddler会将从服务器端接收到的响应立即返回给客户端。因此,流模式下不支持对服务器的响应进行修改。Fiddler捕获的会话信息可以保存到会话归档(SessionArchiveZip,SAZ)文件中,以方便后续查看。这种格式的压缩文件中包含了完整的请求和响应、标志位、时间戳对象以及其他元数据。非技术人员可以使用一个轻量级的捕获工具FiddlerCap来生成SAZ文件,再把这些文件提供给专业人员进行分析。Fiddler支持扩展组件Exporter,它支持把捕获到的会话以其他工具支持的格式来保存,从而保证了Fiddler和这些工具的互通性。同样,Fiddler也支持扩展组件Importer,它支持Fiddler加载以其他格式存储的数据流,包括很多浏览器开发工具所使用的HTTPArchive(HAR)格式。1.2.2使用场景我最经常遇到的一些问题类似于:“我可以使用Fiddler来完成<X>吗”?Fiddler适用于很多场景中。但是,对于一些场景,Fiddler是不合适的。绝大多数情况下,人们所使用的是Fiddler的少数几个功能。以下将简单说明Fiddler所适用以及不适用的场景。Fiddler支持功能的不完整列表查看几乎所有的浏览器、客户端应用或服务之间的Web数据流。手动或自动修改任意的请求或响应。解密HTTPS数据流以便查看和修改。归档捕获到的数据流,支持在不同的计算机上加载这些数据。给客户端应用“回放(playback)”先前捕获到的响应,即使当前服务器处于脱机状态。绝大多数PC和各种设备之间的Web数据流的调试,包括Mac/Linux系统、智能手机和平板电脑。挂接到(chainto)上游代理服务器,包括TOR网络\h\h②。作为反向代理运行,在不需要重新配置客户端计算机或设备的情况下,在服务端捕获数据流。随着基于FiddlerScript或.NET可扩展模型实现的新功能的不断增加,Fiddler将变得更加强大。Fiddler不支持功能的不完整列表Fiddler是一个非常灵活的工具,但某些功能目前还不支持。调试非网络协议数据流。Fiddler支持HTTP、HTTPS和FTP数据流以及相关的协议,如HTML5WebSockets和ICY流。Fiddler无法监测或修改基于其他协议的数据,如SMTP、POP3、Telnet、IRC等。处理超大请求和响应。超过2GB的请求,Fiddler无法处理。超过2GB的响应,Fiddler的处理能力有限。Fiddler使用系统内存和页面文件(pagefile)来保存会话数据。保存大量的会话或超大的请求和响应会导致性能急剧下降。“神奇”地修复网站的错误(bug)。Fiddler可以用来协助识别网络问题,但通常不能独立修复这些bug。我已经收到过无数个电子邮件:“怎么回事?我已经安装了Fiddler,但我的网站怎么还有很多bug?!”好了,完成了Fiddler的入门,接下来让我们一起深入探索它吧!\h①译注:“中间人”这个说法是借用了网络上常见的“中间人攻击(Man-in-the-MiddleAttack)”(参考\h/view/1531871.htm),指Fiddler在两台通信的计算机之间充当“中间人”角色。\h②译注:TOR是专门防范对流量探嗅分析的软件项目。它通过由遍及全球的中继所组成的分布式网络转发通信,可以实现匿名访问网络。第2章
探索Fiddler2.1入门Fiddler的官方网站为\h,强烈建议通过站点下载Fiddler,因为有些恶意网站对其进行了重新打包,会附带安装一些其他软件(如广告软件或浏览器工具栏)。2.1.1系统需求从WindowsXP到Windows8,所有版本的Windows操作系统都支持Fiddler。安装Fiddler唯一需要的就是预先安装Microsoft.NETFramework2.0或更高版本。WindowsVista或更高版本的系统中已经自带安装了.NETFramework,在WindowsXP中可以使用WindowsUpdate来安装它。如果你的系统中只安装了.NET4(以Windows8系统为例,大多没有安装.NET2.0、3.0或3.5),需要下载Fiddler4包,它可以在.NETv4CLR上运行。和大部分.NET程序一样,Fiddler在32位操作系统中会以32位模式运行,而在64位操作系统下会以64位模式运行。Fiddler在64位操作系统中的运行效果最好,即使这些系统的内存小于4GB。虽然不是必须,但是安装InternetExplorer9或更高版本的IE后,Fiddler可以提供更多的功能,因此强烈建议安装。特别说明一下,当安装了IE9及更高版本的浏览器时,Fiddler的WebViewInspector可以显示媒体类型,无需配置就可以查看发送到\hhttp://localhost的数据流。此外,修改IE的配置之后,就可以通过http请求头中的X-Download-Initiator来查看请求的来源。安装Fiddler的基本功能需要5MB左右的磁盘空间,而安装最常用的插件也需要占用5MB左右的磁盘空间。内存不低于512MB的系统就可以运行Fiddler,但当运行于内存大于2GB的系统中时,其性能会显著提高。2.1.2安装FiddlerFiddler的安装很简单——首先是接受最终用户许可协议条款(简单而言,协议的内容就是:一是不要做违法的事;二是作者不提供任何保证),然后选择Fiddler的安装目录。建议使用默认的文件夹作为安装路径——因为有些Fiddler组件会以Fiddler被安装在默认路径下为前提,如果Fiddler没有被安装在默认路径下,该组件将无法正常安装。Fiddler的默认安装路径是%ProgramFiles%\Fiddler2,在大多数系统中就是C:\ProgramFiles\Fiddler2\,而在64位的系统中则是C:\ProgramFiles(x86)\Fiddler2\。如果操作系统支持64位,Fiddler本身会运行在64位模式下,而它之所以被安装在32位的ProgramFiles文件夹中,通常仅仅是由于安装程序是32位的。当成功地安装了Fiddler之后,会打开一个Web页面,显示使用Fiddler的一些关键信息。Fiddler工具的启动图标会被安装在开始菜单(StartMenu)和浏览器的菜单栏中,在这两个地方都可以启动它。此外,你还可以通过快捷键“Windows+R”调出运行框,通过在其中输入fiddler2来启动。权限和XCOPY部署安装Fiddler需要管理员权限,因为它会更新计算机文件夹和注册表位置。如果没有管理员权限,可以采用常见的XCOPY部署(XCOPYDeployment)方式,即在另一台机器上安装Fiddler,然后把它的%ProgramFiles%\Fiddler2\文件夹复制到目标机器或USB存储中。虽然采用这种方式时,Fiddler的某些功能不可用(比如IE工具栏按钮和用于Firefox的FiddlerHook扩展插件),Fiddler本身还是可以正常工作的。2.1.3更新FiddlerFiddler在启动时,会自动查询是否有新版本。当发现有新版本时,你会看到如图2-1所示的更新提示。图2-1单击Yes按钮,Fiddler会启动浏览器,下载最新的安装程序。下载完成后,关闭正在运行的Fiddler,手动安装新下载的程序。如果单击的是NextTime(下一次安装)这个按钮,下一次启动Fiddler时,它会自动下载并安装最新版本。如果点击的是No,弹出的对话框就会关闭,不会安装新的版本;下一次启动Fiddler时,这个提示还会弹出。强烈建议安装最新版本的Fiddler,因为每次更新通常都会增加新功能、提高性能以及修复bug。当前,Fiddler更新时不会自动对扩展进行更新,因此你需要不时地去登录那些扩展插件开发者的Web站点上自行检查扩展是否有新版本。管理员如果禁止用户使用Help>CheckforUpdates命令,可以通过修改注册表的方式实现。打开Windows注册表编辑器,在HKLM\SOFTWARE\Microsoft\Fiddler2中新加一条记录,类型为REG_STRING,名称为BlockUpdateCheck,值为True。2.1.4卸载Fiddler可以使用控制面板中的“添加/删除程序”来卸载Fiddler。卸载后,系统并不会被清理干净,因此卸载无法解决配置问题。当遇到这些问题时,查看本书附录A以得到更多信息。2.2FIDDLER用户界面Fiddler用户界面看起来非常复杂,因为它包含了大量的Web数据流信息,而且提供了很多自定义功能。Fiddler窗口的左边是WebSessions列表,如图2-2所示其右边是各个选项视图(Views),显示在WebSessions列表中选中的Session的信息。在窗口的最上方,主菜单栏(MainMenu)和工具栏(Toolbar)提供了各种操作的快捷入口。在窗口的最下方是状态栏(StatusBar),其中显示的是一些关键信息以及重要的命令。在WebSessions列表下方的是一个很小的命令行窗口QuickExec,它支持快速过滤和命令调用功能。图2-2小贴士:很多UI控制键包含上下文菜单。经常右击这些控制键会有很多收获。如果鼠标箭头变成手势,说明可以点击该UI控制键。支持标准的键盘快捷方式(如CTRL+C表示拷贝,CTRL+A表示全部选中,CTRL+G表示跳到特定的行号,F3用于搜索)。当有弹出的消息窗口时,按下CTRL+C会把文本拷贝到剪贴板。按下ESC键可以关闭对话框或搜索框。在启动Fiddler时,同时按下SHIFT键,可以把Fiddler的UI重新设置为默认形式。双击选项卡标题,可以把该选项从视图中删除。双击splitter,可以最大化显示该splitter右侧的区域。2.2.1WebSessions列表WebSessions列表是Fiddler中最重要的部分——它显示了Fiddler所捕捉到的每个Session的简短的摘要信息。Fiddler中的大部分操作都是通过选中WebSession列表中的一个或多个项来启动的。要选中多个Session,需要同时按住CTRL或SHIFT键,然后再点击想要选中的Session。双击或按下Enter键会打开选中Session的默认Inspectors。Inspectors启动后,Fiddler会自动选择最适合显示选中的Session的请求和响应的Inspector。WebSession列表栏中包含了一些重要信息,具体如下:#–Fiddler为Session生成的ID。Result–响应状态码。Protocol–该Session使用的协议(HTTP/HTTPS/FTP)。Host–接收请求的服务器的主机名和端口号。URL–请求URL的路径、文件和查询字符串。Body–响应体中包含的字节数。Caching–响应头中Expires和Cache-Control字段的值。Content–Type–响应的Content-Type头。Process–数据流对应的本地Windows进程。Custom–FiddlerScript所设置的ui-CustomColumn标志位的值。Comments–通过工具栏Comment按钮设置的注释信息。可以通过拖拽来调整WebSessions列表中的各个列标题,改变它们的大小和顺序;单击列标题,fiddler会按该列的值对WebSessions中的项进行排序。使用FiddlerScript、Extensions或QuickExec可以添加新字段。理解不同图标和颜色的含义WebSessions列表中的每行记录的默认文本色彩体现了HTTP状态(红色表示错误,黄色表示认证)、数据流类型(灰色表示CONNECT)、响应类型(紫色表示CSS、蓝色表示HTML、绿色表示script、灰色表示图像)。在FiddlerScriptSession的ui-color标志位中可以修改字体颜色。每行都有一个指向Session进度、请求类型或响应类型的快捷图标,图标及其含义见表2-1。表2-1WebSessions图标正在向服务器发送请求正在从服务器下载响应请求停止于断点处,允许对它进行修改响应停止于断点处,允许对它进行修改请求使用的是HEAD或OPTIONS方法,或者返回HTTP/204状态码。通过HEAD方法和OPTIONS方法,客户端无需下载内容就可以获取目标URL或服务器的信息。HTTP/204状态码表示没有指定URL的响应体请求使用了POST方法向服务器发送数据响应是HTML内容响应是图像文件响应是脚本文件响应是CSS文件响应是XML格式响应是JSON格式响应是音频文件响应是视频文件响应是Silverlight小程序响应是Flash小应用程序响应是字体文件响应Content-Type没有专用的图标请求使用CONNECT方法。使用该方法构建传送加密的HTTPS数据流的通道Session封装了HTML5WebSocket连接响应是HTTP/3xx类重定向响应是HTTP/401或HTTP/407,要求客户端进行认证;或响应为HTTP/403,表示访问被拒绝响应包含HTTP/4xx或HTTP/5xx错误状态码Session被客户端应用、Fiddler或服务器中止。客户端的浏览器在下载一个页面的过程中,用户导航到另一个页面时,通常会发生这种情况。客户端浏览器取消所有正在处理的请求,因此最后Session的响应状态是Aborted该响应属于HTTP/206响应类型。该响应通常在客户端对目标URL执行Range请求获取部分内容时发生响应状态是HTTP/304,表示客户端缓存的副本已经是最新的了WebSession是没有加锁的,因而可以修改已经处理完成的Session快捷键WebSession列表支持的快捷键如表2-2所示。表2-2WebSession快捷键Spacebar在视图中激活并显示当前SessionCTRL+A选中所有SessionESC取消选中所有SessionCTRL+I反向选中;取消选中的Session,选中之前未选中的SessionCTRL+X删除所有Session(和fiddler.ui.CtrlX.KeepMarked相关的)Delete删除选中的SessionShift+Delete删除所有未选中的SessionR重新执行当前请求SHIFT+R多次重复执行当前请求(次数在后续的提示框中给出)U无条件地重新执行当前请求,发送不包含If-Modified-Since和If-None-Match的请求头SHIFT+U无条件地多次重复执行当前请求(执行次数在后续的提示框中给出)P选中触发该请求的父请求。根据HTTP请求头的Referer值确定父请求C选中该响应触发的所有所有子请求。根据HTTP请求头的Referer字段的取值或者标示重定向的Location字段的取值判断D选中和当前Session使用了相同请求方法和URL的所有“重复”请求ALT+Enter查看当前Session的属性SHIFT+Enter在新的Fiddler窗口中启动该Session的InspectorsBackspaceor“Back”mousebutton激活之前选中的SessionInsert切换是否用红色粗体标记选中的SessionCTRL+1
CTRL+2
CTRL+3
CTRL+4
CTRL+5
CTRL+6把选中的Session分别用粗体红色、蓝色、金色、绿色、橙色或紫色表示M给选中的Session添加描述2.2.2WebSession上下文菜单右击WebSessions列表顶端的标题栏,显示包含两个选项的上下文菜单,如表2-3所示。表2-3WebSession上下文菜单所有列可见把每个列的宽度重新设置为至少30个像素,确保所有列都是可见的如何配置列…打开一个帮助窗口,说明了如何在WebSession列表中添加新列右击WebSession列表,会出现一个很大的上下文菜单。在该上下文菜单中,很多选项只有在选中了WebSession列表中一个或多个Session时才可见。FiddlerScript会对该菜单进行扩展,因此它总是包含一些额外的命令。AutoScrollSessionList选项用于决定Fiddler是否会自动把新增的Session添加到WebSession列表中。Copy菜单项用于复制在WebSessions列表中选中的Session的信息,如表2-4所示。表2-4Copy菜单项JustUrl把选中的Session的URL列表拷贝到剪贴板,每行一个url。当光标定位在WebSession列表时,快捷键CTRL+U可完成此功能Thiscolumn拷贝菜单所在列的文本。把选中的Session的这一列的文本添加到剪贴板中,每行一个SessionTersesummary把选中session的简要说明复制到剪贴板中。简要说明中包括请求方法、URL、响应的状态码以及状态信息。如果响应是HTTP/3xx重定向,文本中也会包括响应头中Location字段的内容。当光标位于WebSession列表时,按下CTRL+SHIFT+T键也会执行该命令Headersonly把Session的请求头复制到剪贴板中。既可以以纯文本格式,也可以以HTML格式复制,所以,在仅处理纯文本(如notepad)的编辑器和支持富文本(如Word)的编辑器中,复制结果会不同。由于这是“默认”命令,双击子菜单Copy命令会复制请求头。如果光标定位在WebSession列表中,按下CTRL+SHIFT+C键也会执行该命令Session把整个Session列表复制到剪贴板。支持以纯文本和HTML这两种格式进行复制,所以当粘贴到只支持纯文本的编辑器和支持富文本的编辑器中时,显示结果会有差别。当光标定位在WebSession列表时,还可以按下CTRL+SHIFT+S键来执行该命令FullSummary把WebSession列表中显示的信息复制到剪贴板。各个列通过tab分隔,这便于你把信息粘贴到Excel或其他编辑器中。当光标定位在WebSession列表时,按下CTRL+C键会执行该命令Save子菜单中包含了用于把流量保存到文件中的一些选项,如表2-5所示。表2-5Save菜单项AllSessions把WebSession列表中的所有session都复制到SAZ文件中...andOpenasLocalFile把选中Session的responsebodies分别保存到独立的文件中,然后根据响应的文件类型找到对应的handler来打开文件。如果操作该选项时按住CTRL键,Windows会提示你使用哪个应用来打开该文件SelectedSessionsInArchiveZip把WebSession列表中选中的Session保存到SAZ文件中AsText把选中的所有Session一起保存到一个文本文件中AsText(Headersonly)把选中Session的请求头和响应头一起保存到一个文本文件中RequestEntireRequest把选中Session的请求头和请求体分别保存到独立的文件中RequestBody把选中的Session的请求体保存到独立的文件中ResponseEntireResponse把选中Session的响应头和响应体保存到独立的文件中如果需要创建的响应文件后续可以通过AutoRe-sponder进行重放,可以启用该选项ResponseBody把选中session的请求体保存到独立的文件中。如果你希望在另一个程序单独打开响应体(如图像),而不受其HTTP响应头干扰,可以启用该选项Remove有三个子菜单可以用于从WebSession列表中删除全部、选中的或未选中的Sessions。当光标定位在WebSession列表时,按下CTRL+X、Delete或Shift+Delete键可以分别激活这几个命令。Comment…菜单命令支持为一个或多个选中的WebSession增加或修改注释。Mark子菜单支持选择一种颜色来标记WebSession列表中的Session。Session的字体会根据选项相应加粗和着色。Unmark选项会取消对选中的Session进行加粗,并把颜色恢复为默认颜色。Replay子菜单提供命令支持播放当前选中的请求,如表2-6所示。表2-6Replay子菜单ReissueRequests把选中的请求以原来的形式重新发送。如果执行该命令时也按下了Shift键,Fiddler会弹出一个对话框,可以输入希望执行的次数。把光标置于WebSession列表中并按下R键就会执行该命令ReissueUnconditionally如果需要无条件地反复发送选中的请求,增加请求头If-Modified-Since和If-None-Match,可以告诉服务端不要返回HTTP/304响应。如果在调用该命令时也按下SHIFT键,Fiddler会弹出对话框,提示输入希望该请求被执行的次数。把光标定位到WebSession列表中并按下U键也会执行该命令ReissueandEdit把选中的请求以原来的形式重新发送,在每个新的Session中设置请求断点,在请求被发送到服务器之前,使用Fiddler的Inspector修改请求RevisitinIE在IE中把每个选中的请求导航到请求URL。注意IE在导航时总是使用GET方法,而且使用自己的header和cookie,不管session中提供的是什么HTTP方法和请求头Select子菜单支持使用当前选中的Session来选择其他Session,如表2-7所示。表2-7Select子菜单ParentRequestParentRequest选项会尝试使用请求的Referer头和请求ID来查找当前请求的来源Session。举个例子,假设你通过JavaScript执行该命令,选中的Session通常会是下载该JavaScript文件的HTML页面。当光标定位在WebSession列表时,按下P键可以执行该命令ChildRequestsChildRequests选项会使用该请求的URL和请求ID来查找请求。例如,如果你在HTMLSession中执行该命令,通过该选项选中的Session通常是HTML标记中的CSS、JS和图像文件的访问请求。当光标定位在WebSession列表时,按下C键也会执行该命令DuplicateRequests选中WebSession列表中和当前Session的URL和HTTP方法相同的所有SessionCompare命令只有当WebSession列表中仅选中两个Session时才可用。当选中该命令,会把选中的这两个Session保存到临时文件中,然后启动配置好的比较工具,从而比较请求和响应。COMETPeek命令会保留正在执行的响应的“快照”,在响应完成前就可以查看部分内容。当Web应用采用COMET模式以流式向客户端返回数据时,可以使用该命令。由于“流式”的含义就是永不结束,只有当服务端停止连接后,Fiddler才会返回响应。AbortSession命令会终止正在执行的请求,中断客户端和服务器之间的连接。CloneResponse命令只有当WebSession列表中选中两个Session,并且其中一个Session在断点处中止,而另一个Session已经运行完时才可用。该命令会把已经完成的Session的响应拷贝给暂停运行的Session。借助这个功能可以复制之前捕捉到的(或修改的)响应并返回给后续的请求。UnlockforEditing菜单命令会释放某个选中的Session,支持通过Inspector编辑已经执行完的Session的请求和响应。当光标定位在WebSession列表,可按下F2键来执行该命令。InspectinNewWindow命令会打开一个SessionInspector窗口,从而使你在独立窗口中查看Session的请求、响应和属性。Properties…命令会打开Session属性窗口,显示当前选中的Session的信息,包括计时器、Session标志位以及请求如何被转发的等信息。2.3FIDDLER主菜单主菜单被设计为可以启动几乎所有的Fiddler功能。菜单系统可以通过FiddlerScript或Extensions进行扩展和增强,本节将要探讨Fiddler本身默认的菜单命令。2.3.1File菜单File(文件夹)菜单中的命令主要支持完成通过Fiddler来启动和停止Web流量的捕获(capture),也可以加载或存储捕获的流量。CaptureTraffic是个开关,可以控制是否把Fiddler注册为系统代理。当把Fiddler注册为系统代理时,所有依赖于WinINET代理的应用(如IE浏览器和很多其他浏览器)会把Web请求发送给Fiddler。Firefox的FiddlerHook附加组件也可以识别该菜单选项。即使Fiddler没有被注册为系统代理,Fiddler仍然可以显示和处理其接收到的任何请求。LoadArchive用于重新加载之前捕获的以SAZ文件格式保存的流量。Save子菜单中的选项支持以多种方式把流量保存到文件中;该菜单选项和WebSession列表中的上下文菜单中的选项相同。ImportSessions…支持导入从其他工具捕获的流量,也支持导入以其他格式存储的流量。ExportSessions菜单支持把Fiddler捕捉到的Session以多种文件格式保存。在其子菜单中可以选择AllSessions…或SelectedSessions…。Exit菜单命令会取消把Fiddler注册为系统代理,并关闭工具栏。2.3.2Edit菜单Edit菜单中的绝大多数命令都需要作用于WebSession中当前选中的Session,因此除非选中一个或多个Session,否则大多数命令都不可用。Copy下面的几个子菜单分别支持复制选中Session的某些信息。该菜单中的命令和Session列表的右键菜单中的命令相同。Remove下面的子菜单分别支持从WebSession列表中删除全部、选中的或未选中的Session。当光标在Session列表中时,CTRL+X、Delete或Shift+Delete键组合可以分别激活这几个命令。SelectAll命令选中Sessions列表的所有内容。光标置于Session列表中,并按下CTRL+A键也可以激活该命令。PasteFilesasSessions命令会基于剪贴板上的内容,生成一个或多个模拟的WebSession。如果剪贴板包含文本串,而且在前64个字符中含有DataURI,可以通过标识解析出该DataURI,创建新的Session并添加到WebSession列表中。当你通过Fiddler检查包含DataURI编码的图像的标识,并且想要看看图片看起来如何时,该功能很有用。只需要从标识中拷贝DataURI,使用PasteFilesasSessions命令生成新的Session,然后再在ImageView中查看该Session即可。如果剪贴板中包含的是一张二进制的图片(比如,使用屏幕截图热键Alt+PrintScrn截取的激活窗口的一个截图),将会根据这张图片创建一个虚拟的Session,并将其添加到Session列表中。如果剪贴板包含一个或多个文件(比如是在WindowsExplorer中复制的),每个文件可以触发生成一个虚拟的Session并添加到WebSession列表中。当你想要创建一个准备发送给别人的SAZ文件,并且想要添加一个没有在网络中实际传输过的文件时,就可以使用该功能。举个例子,利用Fiddler捕获了一个ASPX页面的内容后,Web开发人员可以借助这个功能将页面的源代码以一个虚拟Session的形式添加到Session列表中,并一起以SAZ的格式导出。Mark子菜单支持选择一种颜色来标记WebSession列表中选中的Session。Session的字体是粗体的,并根据你选中的颜色进行着色。Unmark选项会取消选中粗体,并重新设置成默认的字体颜色。UnlockforEditing菜单命令会对某个选中的WebSession解锁,支持使用Inspectors编辑Session的所有请求和响应。你可以把光标定位在WebSession列表中,并按下F2键来激活命令。FindSessions…命令会打开FindSession窗口,搜索捕获到的数据流。你可以按下CTRL+F键来激活该命令。2.3.3Rules菜单Rules菜单很容易扩展,其中的大多数命令是通过FiddlerScript文件生成的。HideImageRequests触发器控制是否在WebSession列表中显示图像类Session。HideCONNECTs触发器控制是否在WebSession列表中显示使用CONNECT请求方法的Session。客户端通过CONNECT方法构建到服务器的“原始”连接,发送HTTPS或WebSocket流量请求。AutomaticBreakpoints子菜单控制Fiddler是否会自动在BeforeRequests或AfterResponses处断点。IgnoreImage触发器控制这些断点是否作用于图片请求。CustomizeRules…菜单命令会使用配置的脚本编辑器打开当前的FiddlerScript文件。如果选中RequireProxyAuthentication菜单项,所有未提交Proxy-Authorization请求头的请求会返回HTTP/407响应,要求客户端安装证书。该规则可以用于测试HTTP客户端,确保这些规则在有证书的客户端服务器上可以正常工作。如果选中ApplyGZIPEncoding菜单项,只要请求包含具有gzip标识的Accept-Encoding请求头,就会对除了图片以外的所有响应使用GZIPHTTP进行压缩。该规则用于测试使用GZIP选项支持的客户端是否真正对内容进行压缩。该选项还支持性能调优,并且计算传输的压缩后的数据流的字节数。如果选中RemoveAllEncodings,会删除所有请求和响应的HTTP内容编码和传输编码。该功能也可以通过Fiddler工具栏中的Decode按钮来调用。该菜单中的其他命令都是用FiddlerScript实现的,因此菜单中的命令和默认的FiddlerScript命令不同。你可以通过点击Rules菜单中的CustomizeRules…选项来查看这些命令的实现(并添加自己的实现)。Hide304s选项会隐藏包含HTTP/304NotModified状态的响应的所有Session。RequestJapaneseContent选项会把所有请求的Accept-Encoding请求头设置或替换成ja标识,表示客户端希望响应以日语形式发送。User-Agents子菜单支持把所有请求的User-Agent请求头设置或替换成指定值。你可以在提供的值中进行选择,也可以使用菜单底部的Custom…选项指定想要的选项值。Performance子菜单Performance子菜单提供影响Web性能的简单选项。如果选中SimulateModemSpeeds选项,它会设置所有后续Session的Flag。把request-trickle-delay标志位设置成300,所有上传数据将延迟300毫秒/KB。同理,如果把response-trickle-delay标志位设置成150,会使所有下载数据延迟150毫秒/KB。如果选中DisableCaching选项,会删除所有If-None-Match和If-Modified-Since请求头,并添加Pragma:no-cache请求头。选中该选项还会删除响应中的所有Expires头,并把Cache-Control响应头设置成no-cache。该选项无法阻止浏览器重用在选用该选项之前所缓存的响应。在选中该选项后,为了得到最佳结果,最好清空浏览器中的缓存(CTRL+SHIFT+DELETE)。ShowTime-to-Last-Byte会在WebSession列表的Custom列中显示Fiddler接收到所有响应所花费的时间,以微秒表示。同样,ShowResponseTimestamp选项会在WebSession列表中Custom列显示,Fiddler接收到服务器的所有响应的时间戳。CacheAlwaysFresh选项会自动响应所有包含HTTP/304响应的有条件HTTP请求,表示客户端缓存是最新的。当访问的站点无法正确地设置缓存失效日期时,该选项可以极大地提高性能。尽管有该选项,但在浏览器中按下CTRL+F5键仍可以保证重新从服务器加载数据,因为浏览器会对要求强制更新的请求忽略If-Modified-Since和If-None-Match头。2.3.4Tools菜单FiddlerOptions…打开FiddlerOptions窗口。WinINETOptions…打开IE的InternetOptions窗口。ClearWinINETCache选项会清空IE和很多其他应用中所使用的WinINET缓存中的所有文件。ClearWinINETCookies选项会清空IE和很多其他应用所发送的WinINETcookie。Session的Cookies还是保持不变。TextWizard…选项会启动TextWizard窗口,支持对文本进行编码和解码。CompareSessions选项只有当选中WebSession列表中的两个Session时才有效。当点击CompareSessions选项,会使用内容区分工具来比较两个Session。HOSTS…选项会打开Fiddler的HostRemapping工具。2.3.5View菜单SquishSessionList控制WebSession列表是否水平收缩,以便有更大的空间来查看Inspectors和其他选项卡。按下F6键会触发该设置。StackedLayout列表对Fiddler用户界面重新组织,使得WebSession列表显示在选项卡最上方,如图2-3所示。如果你添加很多定制列,希望有更多空间来查看这些列时,该功能就很有用。图2-3ShowToolbar控制Fiddler工具栏是否可见,如图2-4所示。图2-4Statistics项会激活Statistics选项卡;按下F7键可以触发该命令。Inspectors项会激活Inspectors选项卡;按下F8键会触发该命令。Composer项会激活Composer选项卡;按下F9键会触发该命令。MinimizetoTray或按下CTRL+M键可以最小化Fiddler到系统托盘中。StayonTop选项会强制Fiddler运行在所有窗口上方。AutoScrollSessionList选项控制当添加新的Session时,Fiddler是否会自动滚动到WebSession列表的底部。Refresh选项和F5键都用于刷新Inspectors或Statistics选项卡中当前选中的Session的信息。2.3.6Help菜单点击FiddlerHelp菜单项会打开Web浏览器,跳转到Fiddler的帮助页面。F1是这个菜单项的快捷键。FiddlerCommunityDiscussions菜单项用于打开浏览器,跳转到Fiddler的讨论组,当前是通过GoogleGroups发起。访问HTTPReferences项会打开包含了各种参考文档的页面,包括RFC2616。如果选中TroubleshootFilters…选项,流量就会以显眼的字体在前端显示,否则会被隐藏起来。Comments列中会给出实现隐藏的过滤规则。如果你发现某个流量不在Fiddler的WebSession列表中,可以尝试一下这个命令。CheckforUpdates…选项会连接到Web服务,检查当前运行的Fiddler是否是最新版的。如果不是最新版,可以选择立即安装最新版,也可以选择在下一次启动时安装。SendFeedback选项会生成Email信息并发送到我的邮箱。AboutFiddler选项会打开窗口,显示当前的Fiddler版本,如图2-5所示。图2-5Fiddler的AboutBox窗口的顶端给出了Fiddler的一些基本信息,包括版本号、是否是beta版以及何时编译的。第二部分说明了Fiddler是以32位还是64位运行,以及当前使用了多少虚拟内存(VirtualMemory)和工作集(WorkingSet)。同时,给出了Microsoft.NET的版本以及Windows操作系统的版本信息。第三部分给出了Fiddler被启动的次数。第四部分中介绍了Fiddler当前使用的主机名和端口号。Listeningto表示Fiddler注册的网络连接。Gateway表示上游代理服务器的信息。最后一部分给出的是联系信息和版权信息。按下Esc键或空格键都可以关闭窗口。按下CTRL+C键可以拷贝全部文本;用鼠标选中期望的文本子集,再按下CTRL+C键可以仅拷贝选中的部分。2.4FIDDLER的工具栏Fiddler工具栏提供了常见命令和设置的快捷方式,如图2-6所示。图2-6下面介绍Fiddler的按钮和功能,见表2-8。表2-8Fiddler按钮Comment点击该按钮可以为所有选定的Session添加Comment。Comment是WebSession列表中的一列Replay点击该按钮可以向服务器重新发送选中的请求。点击该按钮并同时按下CTRL键会重新发送请求,而不包含任何条件请求(ConditionalRequest)头(如If-Modified-Since和If-None-Match)。点击该按钮的同时按下SHIFT键会弹出提示对话框,要求指定每个请求应该被重新发送的次数Remove显示从WebSession列表中删除Session的选项菜单:Removeall用于删除列表中的所有SessionImages用于删除图像类SessionCONNECTs用于删除所有CONNECT通道Non-200s用于删除所有HTTP响应码不是200的SessionNon-Browser用于删除不是由Web浏览器发出的所有请求CompleteandUnmarked用于删除所有状态为正常结束(Done)或异常终止(Aborted)以及没有被标记且Comment列没有内容的SessionDuplicateresponsebodies用于删除没有响应体或者响应体的内容在更早的Session中已经被接收到的SessionResume恢复执行在Request或Response断点处暂停的所有SessionStream打开Stream开关,取消所有没有设置中断的响应的缓存Decode打开Decode,会对请求和响应中的所有HTTP内容和传输编码进行解码Keep:valueKeep下拉选项框用于选择在WebSession列表中保存多少Session。达到Keep选项中的指定计数值后,Fiddler会删掉老的Session,把列表中的session数限定为设置的期望值。未完成的Session以及包含注释、标记或Inspector窗口中处于打开状态的Session不会被删除ProcessFilter在应用中拖拽ProcessFilter图标会创建一个过滤器,它会隐藏选中进程的以外的所有流量。右击ProcessFilter图标会清除之前设置的过滤器Find打开FindSessions窗口Save把所有的Session保存到SAZ文件中Camera把当前桌面的屏幕截图以JPEG格式添加到WebSession列表中Browse如果选中了一个Session,会在IE中打开目标URL。如果没有选中任何Session或选中了多个Session,在IE中打开about:blankClearCache清除WinINET缓存。按下CTRL键并点击该按钮还会清除WinINET中保存的永久cookieTextWizard打开文本编码/解码小工具,以使文本在多种编码间转换Tearoff新建一个包含了所有View的新窗口,同时WebSession列表扩展为充满整个Fiddler主窗口MSDNSearch在MSDN的WebContent区域中进行搜索Help打开Fiddler的帮助窗口OnlineIndicator指示系统当前是在线的还是离线的。如果在线,把光标停留在该按钮上方会显示包含本地计算机的主机名和IP地址的提示。双击该按钮会打开系统的NetworkConnections控制面板X删除工具栏。如果要恢复该工具栏,可以点击View>ShowToolbar把光标悬停在工具栏的任何元素上,都会显示一条提示信息,简要说明元素的功能。按下ALT键可以将工具栏元素拖动到新位置,从而重新组织工具栏。但是,这些变化无法保存,而且重新启动Fiddler时需要重新设置。如果你在小显示器中使用Fiddler,缩短的工具栏可能会导致无法显示最右方下拉菜单中的某些命令。将fiddler.ui.toolbar.ShowLabels设置为false,工具栏就会不再显示工具的名称,这样可以减小工具栏的宽度。Fiddler的状态栏Fiddler主窗口最下方的是状态栏,由一组面板组成,显示了Fiddler的一些配置信息。点击其中一些面板可以快速更改配置。面板从左到右如表2-9所示。表2-9Fiddler状态栏CapturingIndication指示Fiddler是否被配置为系统代理。点击面板可以切换状态Process-basedFilter显示Fiddler当前正在捕获的流量的进程类型。点击面板可以显示进程类型的过滤选项菜单BreakpointIndicator指示中断影响的类型,可能的取值有:全部请求、全部响应、无。点击面板可以在这几种类型间快速切换SessionCounterWebSession列表的条目数。选中一个或多个Session,显示的是选中的Session数以及总Session数,如“2/5”StatusInformation默认情况下,显示选中的第一个Session的URL。该面板还可以显示操作结果的概要信息,比如何时加载或保存SAZ文件2.5QUICKEXECWebSessions列表下的QuickExec对话框中提供了常见操作的快捷方式。Fiddler处于活动状态时,使用Alt+Q快捷键可以把光标定位到QuickExec对话框;如果Fiddler没有处于活动状态,则需要先使用CTRL+ALT+F键激活Fiddler窗口。当光标定位在QuickExec,按下CTRL+I键会把选中的第一个Session的URL插入到WebSession列表中。你还可以从WebSessions列表中拖动/释放一个或多个Session,把URL插入到QuickExec对话框;你也可以从文件系统中将一个或多个文件拖入到文件路径中。QuickExec选择命令QuickExec支持基于指定的搜索条件快速选择感兴趣的数据流。键入选择命令后,如果搜索结果非空,按下Enter键后,光标会定位到WebSession列表中对应的Session,见表2-10。表2-10QuickExec选中命令命令动作实例?search选择URL中包含了指定文本的Session。这是QuickExec对话框中唯一具有即写即搜(find-as-you-type)特性的搜索功能。对于前缀为?的搜索,按下回车键会把光标定位到WebSession列表中的结果上。而所有其他搜索,按下Enter键只是启动搜索?/pathcharsselecttype选择响应头的Content-Type中包含有选中type的Sessionselectcsss
electimage/jpselectheader-or-flagvalue选中在指定的HeaderorSessionFlag的取值中包含指定value字符串的Session,其中值匹配时大小写不敏感。星号前面不带有反斜线时,是一个通配符,表示任何值。\*表示匹配星号本身selectui-commentsslow
selectui-bold\*
selectui-backcolorred
selectui-comments\*
select@Request.Accepthtml
select@Response.Set-Cookiedomain>size选中响应大小超出给定字节的Session。注意:字符“k”会被转换成“000”,这样就可以很容易地以KB甚至MB为单位进行设置>40000000
>4000k
>4KK<size选择响应大小小于指定size字节的Session。注意:字符“k”代表“000”<5k@host选中请求头的Host中包含了指定host的Session@
@.gov=ResponseCode选中响应状态码等于给定值的Session=200
=404=Method选中请求的HTTP方法是给定值的Session=GET
=POST除了支持数据流的选择,QuickExec对话框还支持一些其他命令:colsaddflagname
colsaddtitleflagname给WebSession列表添加新的字段(只属于该实例)。参数title是可选的;如果该字段不存在,也可以用flagname命名。flagname既可以是SessionFlag,也可以是请求头或响应头的字段名称。
添加一个字段后,后续的所有Session都会包含这个字段。要更新已经完成的Session,需选中这些Session并按下F5键colsaddx-clientIP
colsaddServer
@Response.Server
colsaddAccept
@Request.Accept!listenport[SubjectCN]在指定端口启动一个新的代理监听器对象。这个监听器的Session会被添加到WebSession列表中并被自动配置为允许远程连接。
如果有CN参数,该监听器上的所有接入连接会自动触发HTTPS握手;Fiddler会提供证书,包含指定的SubjectCN。当把Fiddler作为HTTPS网站的反向代理时,该功能很有用!listen8889
!listen4443
!dnshostname
!nslookuphostname为指定的hostname执行DNS查询(或者在Fiddler的DNS缓存中查询),在Log选项卡中显示结果!dnsprefsshow[substring]将所有的Fiddler配置选项显示在消息对话框中。如果提供子字符串substring,只显示包含了该子串的设置prefsshow
prefsshowcomposerprefsremovename清除包含了特定名称name的选项。下一次查询时,该选项会使用默认值prefsremove
fiddler.ui.font.sizeprefssetnamevalue更新或创建包含指定名称name和值value的选项prefsset
fiddler.differ.UltraDiffFalseprefslog把Fiddler配置的所有选项写到Log选项卡,以便拷贝!spew触发“DebugSpew”模式,它主要用于调试Fiddler本身的问题。在Deb
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 染色体断裂综合征的妊娠风险评估
- 临西执业护士护理技能测试卷
- 急性心梗护理查房
- Unit 8 Natural laws or human laws说课稿2025学年高中英语教科版必修四-教科版2016
- 26年肺功能动态评估指引
- 安徽省安庆市怀宁县2025-2026学年七年级下学期期中学情检测语文试卷(含答案)
- 医学26年:静脉血栓栓塞症防治 查房课件
- 第5课 美化图片我来做说课稿2025年小学信息技术(信息科技)五年级下册人教·陕师大版
- 老年人护理伦理困境处理
- 上海工商职业技术学院《安全系统工程》2025-2026学年第一学期期末试卷(A卷)
- 肺癌患者围术期处理新进展演示文稿
- 胸腔闭式引流的护理 -
- 《内河船舶法定检验技术规则》课件
- 知名房地产公司施工图设计技术指引
- 计算机等级考试二级《Python语言程序设计》培训教学课件
- 从报表看企业-2课件
- DB11-T380-2016桥面防水工程技术规程
- 产后康复骨盆修复
- 第十五届运动会证件管理使用办法
- 文心雕龙导读教学课件
- 第4章_C55x处理器的软件设计-课件
评论
0/150
提交评论