客户端通过Fiddler发送重复请求时会发生什么?

时间:2019-03-31 07:24:27

标签: http proxy fiddler

我在PC上安装了Fiddler,并使用Fiddler作为代理来监视手机中应用程序的流量。有时,Fiddler捕获具有不同范围标头的重复请求。

例如,该应用程序针对一个具有不同范围标头的1000字节MP4文件发送3个HTTP GET请求。第一个带有“ Range:0-”,第二个带有“ Range:0-499”,第三个带有“ Range:300-999”。提琴手收到所有三个响应,它们的正文总计为1000 + 500 + 700 = 2200字节。但是Fiddler似乎并没有将太多数据发送回应用程序。

我的猜测是,该应用程序首先发送“ Range:0-”请求,但在获得任何响应之前,它会发送“ Range:0-499”请求并关闭第一个请求。当收到前300个字节时,应用会关闭第二个请求并发送“ Range:300-999”请求,并获取以下700个字节。那是对的吗?如果正确,为什么Fiddler会下载所有三个占用额外带宽的响应?如果不正确,该应用程序会获得多少数据?

此外,没有代理该怎么办? 2200字节会被传输并占用额外的带宽吗?

1 个答案:

答案 0 :(得分:0)

提琴手是代理。它从客户端接收请求,并将其发送到服务器。这些请求是否合理,不是最优的,也不是Fiddler的范围。它的工作是将请求完全按照接收到的请求传输到服务器(除非您使用过滤器或脚本来更改或删除请求)。

如果客户端在完全接收到来自服务器的数据之前关闭连接,则可能出现唯一的问题。除非您使用Fiddler的流模式,否则将缓存请求和响应以将其转发到目的地。因此,如果客户端已经断开连接,Fiddler可以下载完整响应事件。我认为第一个0-GET请求就是这种情况。可能是因为客户端检测到使用了代理,因此将其请求方案更改为与代理更兼容的系统。

如果不使用Fiddler,则应使用Wireshark并捕获流量-可能是不同的,还是Wireshark会告诉您(假设流量未经过HTTPS加密)。