Fiddler抓包软件是一款HTTP调试抓包工具。它通过获取程序http通讯的数据,检测网页和服务器的交互情况,Fiddler可以帮您记录,调试Microsoft Internet Explorer与Web应用程序的交互,找到Web程序运行性能的瓶颈,还有就是查看向Web服务器发送cookies的内容,下载内容的大小等功能。那么对于小白来说,我们需要先来了解http/https协议是什么。
http/https协议简介
网络协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则。
HTTP协议(超文本传输协议)是一种网络通信协议,它允许将超文本标记语言(HTML)文档从WEB服务器传送到客户端的浏览器。默认端口:80
HTTP协议的主要特点:
1、支持客户/服务器模式。
2、简单快速:客户向服务器发送请求时,只需传送请求方法和路径。请求方法常用的有GET、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型有Content-Type加以标记。
4、无连接:无连接的含义是限制每次链接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开链接。采用这种方式可以节省传输时间。
5、无状态:HTTP协议是无状态协议。无状态是指协议对于事物处理没有记忆能力。缺少状态以为着如果后续需要前面的信息,则它必须重传,这样可能导致每次链接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
HTTPS协议是一种通过计算机网络进行安全通信的传输协议,经有HTTP进行通信,利用SSL/TLS简历券信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。默认端口:443
HTTPS协议的主要特点:
1、内容加密:采用混合加密技术,中间者无法直接明文查看明文内容
2、验证身份:通过证书认证客户端访问的是自己的服务器
3、保护数据完整性:防止传输的内容被中间人冒充或者篡改
4、SSL证书需要购买申请,功能越强大的证书费用越高
5、SSL证书通常需要绑定IP,不能在同一个IP上绑定多个域名,IPv4资源不可能支持这个消耗
6、HTTPS协议缓存不如HTTP高效,流量成本高
7、HTTPS协议握手阶段比较费时,对网站的响应速度有影响,影响用户体验。
Fiddler抓包软件简介:
Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和heeps请求,允许你监控,设置断点,甚至修改输入输出数据,fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展,你对HTTP协议越了解,你就能越掌握Fiddler的使用方法。你越使用Fiddler,就越能帮助你了解HTTP协议。Fiddler无论是对开发人员还是测试人员来说,都是非常有用的工具。
Fiddler抓包软件工作原理:
Fiddler是以代理Web服务器的形式工作的,它使用的代理地址是:127.0.0.1,默认端口是8888.当Fiddler退出的时候它会自动注销,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动Fiddler。
Fiddler抓包软件运行机制:
本机上监听8888端口和http代理。
对于Pc端Fiddler启动的时候默认IE的代理为127.0.0.1:8888,而其他浏览器是需要手动 设置的,所以如果需要监听Pc端Firefox或者Chrome的网络请求,将其代理改为127.0.0.1:8888就可以监听数据了
Fiddler界面介绍
一、主菜单
File文件:
File—>Capture Traffic启用或停止捕获;
File—>New Viewer 新窗口;
File—>Load Archive 存档;
File—>Recent Archive 最近文档;
File—>Save保存;
Save—>All Session… 全部会话;
Save—>Selected Session 选择了的会话;
Save—>Request 请求;
Save—>Response 响应;
File—>Import Sessions导入会话;
File—>Export Sessions导出会话;
File—>Exit退出;
Edit编辑:
Edit—>Copy拷贝;
Copy—>Session拷贝整个Session;
Copy—>Just Url将选中session的url拷贝到剪贴板;
Copy—>Headers Only拷贝头信息,包括请求和返回的头信息;
Copy—>Full Summary将session列表显示的信息及表头复制到剪贴板,通过tab分割。便于在Excel或其他编辑器中查看编辑;
Edit—>Remove移除;
Remove—>Selected Sessions选择会话;
Remove—>Unselected Sessions反选会话;
Remove—>All Sessions全部会话;
Edit—>Select All选择全部;
Edit—>Undelete恢复之前删除的会话;
Edit—>Paste as Sessions作为会话粘贴文件;
Edit—>Mark标记所选的会话;
Mark—>Strikeout失败;
Mark—>Red红色;
Mark—>Blue蓝色;
Mark—>Gold金色;
Mark—>Green绿色;
Mark—>Orange橙色;
Mark—>Purple紫色;
Mark—>Unmark未标记;
Edit—>Unlock for Editing调为可编辑
Edit—>Find Sessions查找会话
Rules规则:
Rules—>Hide Image Requests隐藏图片请求;
Rules—>Hide HTTPS CONNECTs隐藏HTTPS连接;
Rules—>Automatic Breakpoints断点控制;
Automatic Breakpoints—>Before Requests请求之前;
Automatic Breakpoints—>After Responses 响应之后;
Automatic Breakpoints—>Disabled禁用;
Automatic Breakpoints—>Ignore Images忽略图片;
Rules—>Customize Rules打开Fiddler ScriptEditor;
Rules—>Require Proxy Authentication密码代理验证;
Rules—>Apply GZIP Encoding采用GZIP编码;
Rules—>Remove All Encodings删除全部编码;
Rules—>Hide 304s隐藏304会话;
Rules—>Request Japanese Content要求日语内容;
Rules—>User-Agents支持把User-Agents请求头设置或替换成指定值;
Rules—>Performance提供影响web性能的简单选项;
Performance—>Simulate Modem speeds模拟调制解调器速度;
Performance—>Disable Caching禁止缓存
Performance—>Cache Always Fresh新的缓存
Tools工具:
Tools—>Options选项;
Tools—>WinINET Options WinINET选项;
Tools—>Clear WinINET Cache-清除WinINET缓存;
Tools—>Clear WinINET Cookies清除WinINET的Cookies;
Tools—>TextWizard文字编码解码;
Tools—>Compare Sessions比较会话;
Tools—>New Session Clipboard新会话写字板;
Tools—>HOSTS hosts配置;
Tools—>Reset Script重置脚本;
Tools—>Sandbox沙箱;
Tools—>View IE Cache查看IE缓存;
View视图:
View—>Show Toolbar显示工具条
View—>Default Layout默认布局
View—>Stacked Layout堆叠布局
View—>Wide Layout全部布局
View—>Tabs制表符
Tabs—>preferences偏好
Tabs—>autosave自动保存
Tabs—>apitest API测试
View—>Statistics统计
View—>Inspectors嗅探
View—>Composer构造
View—>Minimize to Tray关闭自托盘
View—>Stay on Top前端显示
View—>Squish Session List会话列表格式
View—>AutoScroll Session List自动滚动会话链表
View—>Refresh刷新
Help帮助:
Help—>Help帮助
Help—>Fiddler Book说明
Help—>Discussions社区讨论
Help—>HTTP References HTTP的参考
Help—>Troubleshoot Filters-故障排除
Help—>Check For Updates检测更新
Help—>Send Feedback发送反馈
Help—>Abou关于
二、工具栏
1、注释框:选中WebSession(网络会话)列表中的一个HTTP/HTTPS,可以添加注释,在该会话后面的comment中可以看到注释。
2、Replay:向服务器重新发送请求。
3、X:删除WebSession(网络会话)的所有会话,相当于清空。
4、Go:用于断点中的暂停的session。
5、Stream:打开该开关,取消所有没有设置终端的相应的缓存。
Stream—>点击为流模式,不点击为缓冲模式
缓冲模式:内容全部返回在发送到客户端;可以控制响应,修改响应数据,但是时序图有时候会出现异常;
流模式:收到内容立即发送给客户端;更接近真实浏览器的性能,速度快,时序图更准确(比如瀑布图),但是不能控制响应;
如果不需要AutoResponse和Fileters功能的话,一般使用缓冲模式;
6、Decode:在请求的响应进行解码,默认勾选。
7、Kepp All sessions 保持全部会话,下拉可以选择保留多少条sessions(会话),比如:100、250、500、1000、5000、10000、全部。
8、Arz Process:点击该图标,并将其拖拽到指定浏览器,该log会单独记录这个页面的通信情况。
9、Find:查找,可用于session(会话)较多时,可以搜索查询。
10、Save:把所有的session(会话)保存到SAZ文件中。
11、截屏:截屏,当前桌面的截屏一jpeg格式添加到websession(网页会话)列表中。
12、时间:倒计时功能。
13、IE浏览器:选中一个会话,点击该图标后,默认会以IE浏览器打开,可选择不同的浏览器。
14、Clear Cache:清除缓存文件
15、TextWizard:打开文本编码、解码小工具。
16、Tearoff :打开一个包含所有功能的新窗口
17、MSDN Search...:关键字查找(跳转浏览器)
三、websession(网页会话)列表
从左到右我们依次来介绍:
1、# 》》点击这个之后会话会按照顺序进行排列(图标或者序号)
2、Resul 》》响应的状态码。比如,200表示响应正常
3、Protol 》》使用的是HTTP或者HTTPS协议
4、Host》》接受请求的服务器主机名和端口号
5、URL》》请求服务器路径的文件名,也包括GET的参数URL的路径。后面跟的就是URL路径
6、Body》》HTTP请求响应中包含的字节数(请求的大小,以byte为单位)
7、Caching》》请求的缓存过期时间或缓存控制的header等值,响应头中的Expires和Cache-Control字段的值。
8、Content-Type》》请求响应的类型
9、process》》对应本地Widows的进程以及进程ID,比如,现在用的浏览器是Chrome。
10、Comment》》给选中的HTTP/HTTPS增加注释时,可以在这查看
11、Custom》》用户可以通过脚本设置自定义值;FiddlerScript所设置的ui-CustomColumn标志位的值。
—>正在向服务器发送请求
–>正在从服务器下载响应
—>请求停止于断点处,允许对它进行修改
—>响应停止于断点处,允许对它进行修改
—>请求使用HTTP HEAD方法,响应没有body
—>请求使用POST方法向服务器发送数据
—>请求使用了HTTPCONNECT方法,使用HTTPS协议建立连接通道
—>响应是HTML内容
—>响应是图片
—>响应是脚本文件
—>响应是CSS文件
—>响应是XML
—>响应是JSON
—>响应是音频文件
—>响应是视频文件
—>响应是Silverlight程序
—>响应是Flash应用程序
—>响应是字体文件
—>通用响应成功
—>响应是HTTP/300,301,302,303,307重定向
—>响应是HTTP/304,使用缓存文件
—>响应需要一个客户端凭证
—>响应是一个Sever错误
—>会话被客户端或fiddler或Sever终止
HTTP状态:红色表示错误,黄色表示认证
数据流类型:灰色表示CONNECT
响应类型:紫色表示CSS,蓝色表示HTML,绿色表示script,灰色表示图像
会话(右键)
Decode Selected Sessions—>解码选择的session,一些Response body 会Encode。Decode后通常能解决乱码的问题;
AtuoScroll Session List—>自动滚动 Session List。当不断有新的session进入list时候,关闭此功能,更容易定位选择某一个或多个session;
Comment—>为一个或多个session添加注释;
Compare—>对比:选中两条session右键,就会出现Compare选项。这个功能是通过第三方的软件来实现,可以下载WinDiff.Exe放在Fiddler的安装目录下,或是下载WinMerge安装,安装时,注意将软件添加到系统环境变量中;
COMETPeek—>命令会保留正在执行的响应的“快照”,在响应完成前就可以查看部分内容。当web应用采用COMET模式以流式向客户端返回数据时,可以使用该命令。由于“流式”的含义就是永不结束,直有当服务端停止连接后,Fiddler才会返回响应;
Abort Session—>终止当前正在执行的请求;
Clone Response—>当Session列表中选中两个Session,并且其中一个Session在断点处中止,而另一个Session已经运行完成时才可用。该命令会把已经完成的Session的响应拷贝给暂停运行的Session;
Unlock For Editing—>使Session的请求和响应都可以在Inspector中编辑;
Inspect in New Windowns—>打开一个新的Session Inspector窗口;
Properties—>打开Session属性窗口,显示当前的Session信息;
Copy拷贝;
Copy—>Just Url将选中session的url拷贝到剪贴板;
Copy—>This Column拷贝摘要,其中包括:请求方法,URL,响应状态码及状态信息。如果是重定向的HTTP/3xx,还会有该请求Response header中Location字段;
Copy—>Terse Summary简要;
Copy—>Headers Only拷贝头信息,包括请求和返回的头信息;
Copy—>Session拷贝整个Session;
Copy—>Response DataURL拷贝响应的DataURI(一个特定资源的协议),格式规范:data:[][;charset=][;base64],,这项技术一般用于图片内嵌页面;
Copy—>Full Summary将session列表显示的信息及表头复制到剪贴板,通过tab分割。便于在Excel或其他编辑器中查看编辑;
Save保存:
Save—>Selected Sessions选择Sessions;
Save—>Selected Sessions—> in ArchiveZIP将选择的sessions保存为SAZ格式压缩文件;
Save—>Selected Sessions—>as Text将所选Session保存为txt格式文件;
Save—>Selected Sessions—> as Text(Headers only)将所选sessions的请求和响应头一起保存为txt格式文件;
Remove删除:
Remove—>Selected Sessions删除选中的sessions
Remove—>Unselected Sessions删除未选中的sessions;
Remove—>All Session删除所有sessions
Filter Now快捷过滤:
选中一个session右键会出现Filter Now选项,Fiddler会根据你选择的session快速生成隐藏/显示条件;
当我们选则隐藏某一个条件后,session list会隐藏符合条件的session;
Mark标记所选的会话:
Mark—>Strikeout失败;
Mark—>Red红色;
Mark—>Blue蓝色;
Mark—>Gold金色;
Mark—>Green绿色;
Mark—>Orange橙色;
Mark—>Purple紫色;
Mark—>Unmark未标记;
Replay重新请求此地址:
Replay—>Reissue Requests 将选中的请求以原来的形式重新发送。如果按住Shift键,可以键入重复次数。或是选中sessions后按Shift+R;
Replay—>Reissue Unconditionally无条件的发送选中请求,告诉服务器不要返回HTTP/304响应,快捷键Shift+U;
Replay—>Reissue and Edit把选中的请求以原来的形式重新发送,在每个session中设置请求断点,在请求被发送到服务器前,使用Fiddler的Inspector修改请求;
Replay—>Reissue and Verify把选中的请求以原来的形式重新发送,验证Response状态码和Response body;重新发送的请求会被标记出背景色,绿色代表验证通过,红色表示验证失败,在comments中会提示失败原因和对比的session id;
Replay—>Reissue Sequentially将选中的请求重新发送,等待前一个响应回来后,在发送下一个;
Replay—>Reissue from Composer将选中的请求克隆到Fiddler右侧的Composer模块中(Composer后续博客讲解);
Replay—>Revisit in IE将sessions的url在IE中打开。注意IE总是使用GET方法,而且用自己的header和cookie,不管session中提供了什么HTTP方法和请求头;
Select选择:
Select—>Parent Request当前请求是从那个页面来的,相当于当前请求头中的Refere字段值。鼠标放在session上按P键可执行;
Select—>Child Requests与1相反;
Select—>Duplicate Requests选中Session列表中和当前的Session的URL和HTTP方法相同的所有Session;
Select—>Matching Values值匹配选择,可以根据Session列表中的任意值匹配,鼠标放任意一列,点击Alt+左键,就会匹配出相同值的session;
四、功能面板(选项卡)
Statidtics—>对选中多个Sessions统计;
Inspectors—>请求头和响应体
AutoResponder—>重新定向
Composer—>模拟进行发送
FiddlerScript—>脚本
Log—>日志
Fiters—>过滤
Timeline—>瀑布流时间图
功能面板(请求查看器)
Headers—>请求头信息显示为一个分级视图,包含了web客户端信息、Cookie、传输状态等;
TextView—>显示POST请求的body部分为文本;
SyntaxView—>显示脚本(安装SyntaxView插件)
WebForms—>以直观的界面显示QueryString的值和Body的值,这里的Body应该是application/x-www-form-urlen-coded格式;
HexView—>请求内容的16进制显示;
Auth—>显示hearer中Proxy-Authorization和Authoriization信息;
Cookies—>以直观的界面显示Header中Cookie的值;
Raw—>将整个请求显示为纯文本;
JSON—>通过JOSN格式显示;
XML—>如果请求的body是XML格式,就是用分级的XML树来显示它;
功能面板(响应查看器)
Transformer—>响应信息的压缩编码格式;
Headers—>用分级视图显示响应的header;
TextView—>使用文本显示相应的body;
SyntaxView—>显示脚本(安装SyntaxView插件)
ImageView—>响应内容如果是图片则显示图片,左侧灰色区域会显示图片的大小、宽高、文件格式等信息,在下方还可以选择缩放模式:自动缩放、缩放以适应显示区域大小、无缩放;
HexView—>响应内容的16进制显示;
WebView—>;
Auth—>显示hearer中Proxy-Authorization和Authoriization信息;
Caching—>缓存;
Cookies—>以直观的界面显示Header中Cookie的值;
Raw—>将整个响应显示为纯文本;
JSON—>通过JOSN格式显示;
XML—>如果响应的body是XML格式,就是用分级的XML树来显示它;
五、QuickExecl(命令行工具)
常用命令:
Cls: 清屏 或者快捷键:Ctrl+x 也可以清屏
Quit: 退出 Fiddler
Help:打开官方的使用页面介绍,所有的命令都会列出来
Select:选择会话的命令,选择所有相应类型,
例子(select image 、select css 、select html)
?Sometext:查找字符串并高亮显示查找到的会话列表的条目
size:选择请求响应大小小于size字体的会话
=status/=method/@host:查找状态、方法、主机相对应的session会话
六、状态栏
点击Capturing后,websession中会停止更新新的会话请求。
All Processes 后面展示的是一共有多少条会话。
推荐阅读:
上一条:fiddler抓包工具的使用方法
品质保证
多年的生产力软件专家
专业实力
资深技术支持项目实施团队
安全无忧
多位认证安全工程师
多元服务
软件提供方案整合,项目咨询实施
购软平台-找企业级软件,上购软平台。平台提供更齐全的软件产品、更专业的技术服务,同时提供行业资讯、软件使用教程和技巧。购软平台打造企业级数字产品综合应用服务平台。用户体验和数字类产品的专业化服务是我们不断追求的目标。购软平台您身边的企业级数字产品优秀服务商。