Fiddler介绍
Posted dashu123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fiddler介绍相关的知识,希望对你有一定的参考价值。
一、HTTP协议简介
二、Fiddler简介
三、Fiddler工作原理
3.2 Firefox浏览器需手动设置局域网代理
3.3 自己设置浏览器代理
3.4 Firefox 中安装Fiddler插件
四、Fiddler界面介绍
五、Fiddler抓取HTTPS请求配置
一、HTTP协议简介
HTTP是超文本传输协议,信息是明文传输的,而HTTPS是安全超文本传输协议,需要证书和提供安全连接,换句话说,HTTPS是嵌套了SSL加密的HTTP连接,其内容由SSL先加密,然后再传输。
简单来讲,HTTPS是加过密的HTTP。由于网络上传输的数据是加密的,用户在浏览网页时,除了用户自己可以看到当前在看什么网页,其他第三方是无法得知用户在做什么的。比如用户在网上登录或输入其他敏感信息进行传输时一旦使用HTTPS,那么数据传输就不是明文了,对于第三方来讲就无法获取你的敏感信息。
二、Fiddler简介
官网:https://www.telerik.com/fiddler
Fiddler是比较好用的web代理调试工具之一,它能记录并检查所有客户端与服务端的HTTP/HTTPS请求,能够设置断点,篡改及伪造Request/Response的数据,修改hosts,限制网速,http请求性能统计,简单并发,接口测试,辅助自动化测试,等等。现在抓包工具成为测试人员的必备使用工具,开发人员也在普遍使用,进行问题的定位分析,是非常有助于工作的一款工具。
三、Fiddler工作原理
先来看看fiddler未参与时,一个普通的客户端与服务端的请求流程图:浏览器访问一个网站:87testing.com,浏览器给webserver发送一个Request,webserver接收到Request后进行处理,返回给浏览器Response,然后浏览器解析Response中的html,展现网页给用户。如图:
3.2 Firefox浏览器需手动设置局域网代理
Fiddler工作于七层中的应用层,在client与webserver之间以代理服务器的形式存在,启动fiddler后会监听本地127.0.0.1的8888端口(默认端口),IE/Chrome浏览器会自动设置局域网代理(Firefox代理是独立的,需要单独设置),如图:
此时,fiddler就作为代理服务器,浏览器访问87testing.com的流程:浏览器给webserver发送一个Request,代理服务器fiddler接收到Request,fiddler将Request发送到webserver,webserver接收到Request后进行处理,Response到代理服务器fiddler,Fiddler将Response返回到浏览器,如图:
3.3 自己设置浏览器代理
默认情况下Fiddler会自动开启IE、chrome等浏览器代理服务,这样的话列表中会显示很多我们实际上不需要的请求。我们可以自己来指定监听哪个浏览器。打开fiddler4工具,点击【Tools】-【Options】-【Connections】
Act as system proxy on startup:默认勾选,当启动fiddler的时候就会设置为系统代理。取消勾选,点击确认然后重启fiddler。
然后自己手动设置浏览器代理。(以IE为例)工具—>Internet选项—>连接—>局域网设置—>高级代理。手动设置127.0.0.1:8888即可。
再次查看左侧请求栏的请求数据时,发现只有IE浏览器发出的请求才会被捕获。
3.4 Firefox 中安装Fiddler插件
修改Firefox 中的代理比较麻烦, 不用fiddler的时候还要去掉代理。 麻烦
推荐你在firefox中使用fiddler hook 插件, 这样你非常方便的使用Fiddler获取firefox中的request 和response
当你安装fiddler后, 就已经装好了Fiddler hook插件, 你需要到firefox中去启用这个插件
打开firefox tools->Add ons -> Extensions 启动 FiddlerHook
四、Fiddler界面介绍
看看Fiddler的基本界面
Inspectors tab下有很多查看Request或者Response的消息。 其中Raw Tab可以查看完整的消息,Headers tab 只查看消息中的header. 如下图
五、Fiddler抓取HTTPS请求配置
由于fiddler安装后默认只能抓取http请求,如果需要抓取https请求需要进行配置。配置方式:
Tools--->Options--->HTTPS,勾选CaptureHTTPS CONNECTs、Decrypt HTTPS traffic 、ignore server certificate errors(unsafe),点击OK,会弹出证书直接确认即可。
此时,在电脑chrome浏览器上就可以访问https的请求了,且fiddler会话列表上就可以显示出https请求。
在配置移动端证书之前检查下如下配置,Tools---->Connections---->勾选Allow remote computers to connect:
实际工作中,移动端项目大部分会在真机上进行测试,那么下面介绍针对手机端访问http/https请求在电脑端可以抓取到对应手机端发出的请求。ios设备及android设备设置方式基本类似,下面以iphone设置为例:
在手机上设置代理:设置—>无线网络,设置服务器ip和端口号:
然后手机safari浏览器输入地址:电脑ip:8888如:http://172.21.10.42:8888会出现如下页面:
点击“FiddlerRoot certificate”进行证书安装,安装完成后,如下说明安装成功:
此时,证书还不算完成安装完,假如手机是ios10.0以上系统,需要在手机系统设置---关于手机----证书信任设置,在此页面把证书开启即可,此时手机safari浏览器地址栏输入:87testing.com,进行访问,在电脑端fiddler上即可显示出对应的请求:
以上是关于Fiddler介绍的主要内容,如果未能解决你的问题,请参考以下文章