zoukankan      html  css  js  c++  java
  • 【转】Fiddler工作原理

    原文章链接: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

  • 相关阅读:
    状态模式
    maven-war-plugin 插件 web.xml 缺失时忽略
    Java远程方法协议(JRMP)
    Java Singleton的3种实现方式
    浅谈分布式消息技术 Kafka
    浅谈分布式事务
    J2EE开发时的包命名规则,养成良好的开发习惯
    使用Dom4j创建xml文档
    Java HttpClient Basic Credential 认证
    Spring MVC的Post请求参数中文乱码的原因&处理
  • 原文地址:https://www.cnblogs.com/xuan52rock/p/6902194.html
Copyright © 2011-2022 走看看