Fiddler是款非常不错的抓包软件,可以方便的捕捉各种软件发起的HTTP请求,甚至可以在发送给服务器前或响应给应用前修改数据。但是在使用时发现,在开启Fiddler时,在浏览器中下载文件时不会马上弹出文件下载框,过了很长一段时间后才会弹出,音乐播放器在切换歌曲时下一首歌曲也会卡顿很久。在关闭Fiddler后就不会出现这种情况。

观察Fiddler的抓包记录时,发现在浏览器中下载文件时,该记录的Result值为-,当由“-”变成“200”时,浏览器弹出了下载框,由此可以判断在下载文件时Fiddler会先将服务器返回的内容缓存起来,内容接收完毕后再一次性返回给应用程序。这种设计应该是为了方便调试修改数据包用,但是对于下载文件之类的操作就不是非常友好了。

Fiddler提供了非常强大的扩展功能,利用FiddlerScript可以个性化定制自己的需求,如定制化过滤数据包、个性化颜色等等。在右侧的FiddlerScript选项卡或菜单-Rule-Customize Rule可进入FiddlerScript的编辑界面。

在编辑器中找到搜索OnPeekAtResponseHeaders函数,在函数主体最后加上如下代码:

    if (oSession.ResponseHeaders["Content-Length"] > 102400) {
oSession.Ignore();
}

OnPeekAtResponseHeaders是在接收到HTTP头之后执行的方法,通过判断HTTP头中Content-Length长度,如果大于100KB则让fiddler忽略此次抓包的请求。

保存后Fiddler会自动重新加载脚本,在浏览器中下载文档时直接弹出文件下载框,不再有卡顿的现象。

附:FiddlerScript知识库

http://docs.telerik.com/fiddler/KnowledgeBase/FiddlerScript/ModifyRequestOrResponse

Fiddler忽略捕捉大文件流的更多相关文章

  1. Java实现http大文件流读取并批量插入数据库

    1.概述 请求远程大文本,使用流的方式进行返回.需要设置http链接的超时时间 循环插入到List中,使用mybatis-plus批量插入到mysql中 2.需求 两台服务器 大文件放到其中一台服务器 ...

  2. 精讲RestTemplate第6篇-文件上传下载与大文件流式下载

    本文是精讲RestTemplate第6篇,前篇的blog访问地址如下: 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用 精讲RestTemplate第2篇-多种底层H ...

  3. C#大文件流式压缩加解密

    * * , CancellationToken token=default) { try { FileStream zipStream = new FileStream(writeFile, File ...

  4. golang gin框架中实现大文件的流式上传

    一般来说,通过c.Request.FormFile()获取文件的时候,所有内容都全部读到了内存.如果是个巨大的文件,则可能内存会爆掉:且,有的时候我们需要一边上传一边处理. 以下的代码实现了大文件流式 ...

  5. .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、压缩流GZipStream、拷贝大文件、序列化和反序列化

    1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里 ...

  6. C# IO操作(四)大文件拷贝(文件流的使用)、文件编码

         大文件拷贝(文件流的使用).文件编码 首先说一下大文件拷贝和文件流,因为计算机的内存资源是有限的,面对几个G甚至更大的文件,需要通过程序来完成拷贝,就需要用到文件流(因为我们无法做到把文件一 ...

  7. .NET客户端下载SQL Server数据库中文件流保存的大电子文件方法(不会报内存溢出异常)

    .NET客户端下载SQL Server数据库中文件流保存的大电子文件方法(不会报内存溢出异常) 前段时间项目使用一次性读去SQL Server中保存的电子文件的文件流然后返回给客户端保存下载电子文件, ...

  8. C# 的 WCF文章 消息契约(Message Contract)在流(Stream )传输大文件中的应用

    我也遇到同样问题,所以抄下做MARK http://www.cnblogs.com/lmjq/archive/2011/07/19/2110319.html 刚做完一个binding为netTcpBi ...

  9. java 大文件上传 断点续传 完整版实例 (Socket、IO流)

    ava两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路: 1.服:利用ServerSocket搭建服务器,开启相应端口,进行长连接操 ...

随机推荐

  1. Spring-boot 国际化

    在application.properties文件中配置 spring.message.basename=i18n.login 页面使用 th:text="#{login.tip}" ...

  2. Python-Django 路由控制器

    1 路由的基本使用: # url是个函数,有四个参数,第一个参数要传正则表达式,第二参数传函数内存地址,第三个参数传默认参数,第四个是路由的别名 url(r'^liuqingzheng/article ...

  3. flex使内部内容自适应宽度

  4. 一分30秒 kali 开机显示 a start job is running for dev-disk 处理

    在给kali虚拟机扩容后,使用fdisk  /dev/sda  更改新建分区后,重启系统出现一分30秒等待. 解决方案:    (root 权限) 第一步:sudo blkid (查看当前系统的真实的 ...

  5. python的单、双、多分支流程控制

    if流程控制总结: 1.当满足条件时,执行满足条件的代码. 2.当执行完if语句内代码,程序继续往下执行. 单分支: if 条件成立,执行满足条件的代码 如下: if a>50: print(' ...

  6. .NET Core 添加Java 服务引用(WebService) 曲折历程(一)

    背景: 需要在HangFire定时任务中加入请求Java开发的WebService接口.定时获取数据同步数据.现有的代码是在VS2017 ,.Net Core 下创建的,添加WS发现系统不支持. 在C ...

  7. numpy array分割-【老鱼学numpy】

    有合并,就有分割. 本节主要讲述如何通过numpy对数组进行横向/纵向分割. 横向/纵向分割数组 首先创建一个6行4列的数组,然后我们对此数组按照横向进行切割,分成3块,这样每块应该有2行,见例子: ...

  8. Codeforces 1109D Sasha and Interesting Fact from Graph Theory (看题解) 组合数学

    Sasha and Interesting Fact from Graph Theory n 个 点形成 m 个有标号森林的方案数为 F(n, m) = m * n ^ {n - 1 - m} 然后就 ...

  9. APP,H5测试要点

    APP测试重点 一,运行测试 运行过程中,是否有加载提示: 运行速度是否流畅: 各个模块之间的切换是否正常: 二,更新测试:打开旧版app时,是否有更新提示,且在不同的手机版本上都能更新成功:打开新版 ...

  10. 15,EasyNetQ-高级API

    EasyNetQ的使命是为基于RabbitMQ的消息传递提供最简单的API. 核心IBus接口有意避免公开AMQP概念,如交换,绑定和队列,而是实现基于消息类型的默认交换绑定队列拓扑. 对于某些场景, ...