0

I install Fiddler on my PC and use Fiddler as a proxy to monitor the traffic of an app in my phone. Sometimes, Fiddler captures duplicate requests with different range headers.

For example, the app sends 3 HTTP GET requests for one 1000-byte MP4 file with different range header. The first with "Range: 0-", second with "Range: 0-499", third with "Range: 300-999". Fiddler receives all three responses whose bodies sum up to 1000+500+700=2200 bytes. But it seems that Fiddler doesn't send so much data back to the app.

My guess is that the app first sends "Range: 0-" request but before getting any response it sends "Range: 0-499" request and close the first request. When the first 300 bytes received, the app closes the second request and sends "Range: 300-999" request and get the following 700 bytes. Is that correct? If that's correct, why does Fiddler download all three responses which consumes extra bandwidth? If that's wrong, how much data does the app get?

Furthermore, what will happen without proxy? Will the 2200 bytes be transferred and take up extra bandwidth?

AlanRivers
  • 13
  • 3

1 Answers1

0

Fiddler is a proxy. It receives requests from a client and sends them to the server. Whether the requests make sense or not, are not optimal nor not is out of scope for Fiddler. It's job is to transmit the requests exactly as they has been received to the server (unless you use the filters or scripting to change or drop the request).

The only problem can arise in case the client closes the connection before the data from server has been fully received. Unless you are using the streaming mode of Fiddler requests and responses are cached for forwarding them to their destination. Therefore Fiddler may download the full response event if the client has already disconnected. I assume that this is the case of the first 0- GET request. May be because the client has detected that a proxy is used it changes it's request scheme to a more proxy compatible system.

You should use Wireshark and capture the traffic in case you don't use Fiddler - may be it is different or not Wireshark will tell you (assuming the traffic is not HTTPS encrypted).

Robert
  • 39,162
  • 17
  • 99
  • 152
  • Thanks for your reply. Streaming mode of Fiddler was on. I try using Wireshark and it shows that sometimes client starts a request but at the same time sends the RST TCP packets to close the connection and starts a new TCP connection with another request for the same video but Fiddler keeps retrieving both of the whole responses and I cannot know the real throughput consumption due to the the duplicate response. I suspect Fiddler does not forward the RST TCP packets so both connections exist. Can Fiddler be configured to actually behave like the client rather than proxy? – AlanRivers Apr 01 '19 at 14:02