Fiddler的工作环境:
Fiddler的官网:fiddler2.com
一、fiddler的初步介绍:
- 监控http/https的流量,可以从浏览器或客户端软件中截获这些请求 。
- 可以查看所截获的内容。
- 伪造请求,不仅可以伪造服务器返回的请求,还可以伪造一个请求发给服务器,有了这个功能更利于前后端的调试。
- 可以测试网站的性能,便于优化前端功能。
- https是一种加密的协议,fiddler可以进行https的解密操作。
- Fiddler提供的第三方插件
二、fiddler的运行环境:
支持所有的操作系统和所有的浏览器。但是,早期的版本是基于.Net开发的,对于windows的品牌支持的比较好。对于Mac和Linux系统的功能比较少。
Fiddler的工作原理:
1. 如何工作的:
实际上就是在客户端和服务器之间创建了一个代理服务器,客户端发起的所有请求,都要通过fiddler来创建的这个代理服务器,才能够到达最终的它所请求的那台服务器。
2. 如何实现的:
浏览器本身都有一个代理服务器设置,在internet选项里面有一个连接面板——局域网设置——高级,当启动fiddler之后,浏览器的服务地址就被篡改了,所呈现的服务器地址和端口就是fiddler所监听的地址。通过修改这个浏览器的服务器地址,fiddler就可以截获所有发出的请求。
3. fiddler作为代理服务器有两种模式:
(1)流模式(streaming)
使用流模式时,fiddler会实时的把服务器返回给客户端应用程序的数据,
Var http = require(‘http’);
http.createServer(function (req,res){
Res.writeHead(200,{‘Content-type’:’text/plain’});
Res.write(‘buffer data ’);
setTimeout(function(){
Res.end(‘Hello World\n’); //不需要请求这个方法,之前缓冲期里面的内容就显示给浏览器
},10000);
}).listen(1337,’107.0.0.1’);
Console.log(‘Server running at http://127.0.0.1:1337/’);
流模式的优点:更接近于浏览器本身真实的行为。
(2)缓冲模式(buffering)
使用缓冲模式时,fiddler会等待这个http请求所有的数据都准备好之后才会把数据返回给我们的客户端
Var http = require(‘http’);
http.createServer(function (req,res){
Res.writeHead(200,{‘Content-type’:’text/plain’});
Res.write(‘buffer data ’);
setTimeout(function(){
Res.end(‘Hello World\n’); //需请求这个方法执行完之后,才会在浏览器中输出内容
},10000);
}).listen(1337,’107.0.0.1’);
Console.log(‘Server running at http://127.0.0.1:1337/’);
缓冲模式的优点:可控制最后浏览器的响应。