原文章链接:Web代码网chinabit.org

Fiddler是一个http调试代理,它能 够记录所有的你电脑和互联网之间的http通讯,Fiddler 可以也可以让你检查所有的http通讯,设置断点,以及Fiddle 所有的“进出”的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思,它还可以抓取进程发送的HTTP报文)。 Fiddler 要比其他的网络调试器要更加简单,因为它仅仅暴露http通讯还有提供一个用户友好的格式。

Fiddler工作原理

浏览器与服务器之间通过建立TCP连接以HTTP协议进行通信,浏览器默认通过自己发送HTTP请求到服务器。 而Fiddler是c#开发(微软出品,主要作者Eric Lawrence)的http代理服务器,fiddler工作于七层中的应用层,能够捕获到通过的http(s)请求。

在安装了Fiddler的系统中,启动Fiddler之后会监听8888端口(默认8888,可以修改)。

我们可以通过监控系统的端口来查看:

1. 在启动fiddler之前端口8888的状态

命令:netstat -ano|findstr “8888″

表示查不到占用状态

2. 启动fiddler之后:

在启动fiddelr之后可以发现8888端口被5256线程给监听

可以查看到5256线程为fiddler程序:

命令:tasklist |findstr “5256″

3.然后启动Chrome浏览器,浏览网页就会发现:

5658进程与fiddler建立了tcp连接,发送端为5658进程占用3258端口,接收端为fiddler(5256)占用的8888端口

命令:netstat -ano|findstr “8888″

查看5568进程,为chrome程序

命令:tasklist |findstr “5568″

同理,打开Firefox浏览器,浏览网页也是如此:

7836进程与fiddler建立了tcp连接,发送端为7836进程占用3294端口,接收端为fiddler(5256)占用的8888端口

命令:netstat -ano|findstr “8888″

查看7836进程,为firefox程序:

命令:tasklist |findstr “7836″

ps:要注意的firefox中需要手工将代理设置成fiddler:127.0.0.1:8888,因为Firefox不是使用系统默认的winINET(不过刚亲自试验发现安装fiddler后,firefox会提示安装fiddler插件,之后就不需要在手动配置了,如果不能监听火狐,就手动配置一下吧~)

所以,fiddler作为一个代理服务器,跟浏览器建立连接之后,浏览器像目标服务器发送的请求都会经过fiddler代理,

所以fiddler可以捕获到http(s)请求,从而可以解释、分析、甚至重写发出去的http(s)请求。

简单说就是:

浏览器 < -> Fiddler < -> 服务器

在平常的调试中,fiddler常用于:

1. 解析请求:如:解析http请求状态,请求头,请求正文,返回头,返回正文等

2. 修改请求,如:设置断点,则可以修改发出去的请求数据,或者修改请求返回的数据

3.重定向请求,如:替换远程文件,则可以调试线上的js/css代码

4.构造请求,如:构造请求发送数据,比如可以用于的测试网站安全性

from:http://blog.csdn.net/gscaiyucheng/article/details/26938019

【转】Fiddler工作原理的更多相关文章

  1. Fiddler 工作原理

    Fiddler工作原理: 就在在客户端与服务器端创建一个代理服务器: 在开启Fiddler后,Fiddler会自动窜改浏览器的代理,例如我们打开Fiddler,打开IE浏览器--设置--Interne ...

  2. fiddler工作原理和代理设置

    1,什么是Fiddler Fiddler是一个http协议调试代理工具,它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据.设置断点.调试web应用.修改请求的 ...

  3. fiddler工作原理和设置代理问题

    1,什么是Fiddler Fiddler是一个http协议调试代理工具,它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据.设置断点.调试web应用.修改请求的 ...

  4. Fiddler工作原理与代理设置

    1,什么是Fiddler Fiddler是一个http协议调试代理工具,它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据.设置断点.调试web应用.修改请求的 ...

  5. Fiddler抓包和工作原理

    一.概述 Fiddler是一款免费且功能强大的数据包抓取软件.它通过代理的方式获取程序http通讯的数据, 可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求, 支持监视. ...

  6. Fiddler的工作原理与主菜单介绍(一)

    1.简介: 官网:https://www.telerik.com/fiddler Fiddler是比较好用的web代理调试工具之一,它能记录并检查所有客户端与服务端的HTTP/HTTPS请求,能够设置 ...

  7. 全网最全最细的fiddler使用教程以及工作原理

    目录:导读 一.Fiddler抓包工具简介 二.Fiddler工作原理 三.Fiddler安装 四.Fiddler界面介绍​ 五.Fiddler菜单栏介绍 六.Fiddler工具栏介绍 七.Fiddl ...

  8. 1,fiddler的工作原理和安装

    1,工作原理就是通过设置代理监控客户端和服务端的协议 2,fiddler的安装 1,官方的下载地址:https://www.telerik.com/download/fiddler 一步步安装即可 2 ...

  9. 菜鸟学Struts2——Struts工作原理

    在完成Struts2的HelloWorld后,对Struts2的工作原理进行学习.Struts2框架可以按照模块来划分为Servlet Filters,Struts核心模块,拦截器和用户实现部分,其中 ...

随机推荐

  1. Log4J & elk 事故总结

    周六的早晨8点,应用出现了大面积的登录超时问题. 作为一款日活15W.用户量700W+的应用,这是致命的问题. 唯一的安慰是——好在今天是周末,加班的公司才会使用.虽然如此,客服.产品的电话也被打爆了 ...

  2. 比较全git的.ignore文件配置

    # maven,gradle ignoretarget/_build/build/_site/.gradle*dependency-reduced-pom.xmltest.* # eclipse ig ...

  3. 记一次Full GC问题的排查

    今天看到监控平台显示项目的Full GC次数过多,查看了一下监控曲线,如下图,发现发生的时间点基本上都是在上午十点之后,到下午五点. 分析:考虑到业务形态,开始初步怀疑是访问人数增多引起的虚拟机内存不 ...

  4. 在学习使用webpack中遇到的错误

    1.局部安装webpack之后使用node_modules/.bin/webpack app/main.js public/bundle.js命令报错      解决方法:      webpack版 ...

  5. CSS图标文字不对齐

    页面排版经常遇到‘图标+文字’的需求,正常样式写下来是这样 ​, 但产品要的应该是长这样 ​,怎么办呢?其实很简单,加个样式看看 vertical-align: top/middle/bottom; ...

  6. javaSE中JDK提供的四种线程池

    对javaSE中JDK提供的四种线程池稍作整理   一.Executor   package java.util.concurrent; /** * @since 1.5 * @author Doug ...

  7. vuex 管理vue-router的传值

    假设有这样的一种情况,在两个组件中.一个组件[A]主要是比如说放表格数据,而另外一个组件[B]是专门用来向组件A的表格添加数据的表单.这个时候就是两个兄弟组件之间传递数据了.首先想到的是使用兄弟组件传 ...

  8. memset初始化数组的问题

    今天才搞清楚,memset用于初始化数组,仅能初始化为0值,而不能初始化一个特定的值,这怎么能模糊了呢??? 因此,如果对申请的一段存放数组的内存进行初始化,每个数组元素均初始化为特定的值,必须使用循 ...

  9. SVN CentOS7 下配置svn的安装及基础配置介绍

    CentOS7 下配置svn的安装及基础配置介绍 by:授客 QQ:1033553122 目录 一. 二. 三. 四. 五. 六. 七. 一.      实践环境 CentOS 7操作系统(CentO ...

  10. linux centOS7 设置 redis 开机启动

    1.为了让redis-server能在系统启动时自动运行,需要将redis服务作为守护进程(daemon)来运行,我们回/usr/local/cluster/7000/目录中找到一个redis.con ...