RE: GOOGLE SAVES THE WORLD - Range request utility: Chrome vs FF vs IE vs Safari

Hi Zong Yu

> -----Original Message-----
> From: zhong.j.yu@gmail.com [mailto:zhong.j.yu@gmail.com]
>
> Hi Chris, how do you simulate dropped connection for chrome? ...
>


My research environment is a simple program (Portmap) which can control bandwidth and latency. It is listening on 8080 and needs to be set up as the proxy for the browsers. Portmap sends everything to Fiddler2 which is setup to intercept also https traffic (acts actually as a man in the middle). Specifically for that research I added a small GUI for convenience (you can change bandwidth and close connections, individual and all). I wrote the original tool a while ago. We have to deal with: high latency networks (e.g. satellite links), non-reliable connections and both. We have frequently the issue with components which work fine for reliable low latency networks, and fail, for non-reliable and/or high latency networks (e.g. HTTP/2).
If you want I can send you the binary.

>
> Here's some of my observations on Firefox and IE resumed download:
>
> 1. If the 1st response has no ETag:
>
>     Firefox: the 2nd request is not Range request.
>     IE: "pause" is disabled for the 1st response
>
> 2. If responses have changing ETags:
>
>     Firefox/IE: send "If-Range" on resumed download, so no problem there
>
> 3. If the 1st response has no Content-Length:
>
>     Firefox: the 2nd request is not Range request.
>     IE: "pause" is disabled for the 1st response
>
> 4. If the 1st response is gzip-ed with Content-Length:
>
>     Firefox: the 2nd request is not Range request.
>     IE: "pause" is disabled for 1st response; also does not show total length or
> percentage of download, as if Content-Length is ignored.
>

When I said if and only, I was only talking about the mentioned parameters. There  are probably some other parameters (e.g. server type) which control the behavior. Specifically Chrome tries to use range request on content with CE != identity even without ETags.

> Also I remember previously on an older version of Firefox, the browser does
> send Range request even if the 1st response contains no Content-Length. That's
> apparently not the case any more on the current version (28.0, win7)


This is actually the point I wanted to mention. The browsers try to use all benefits of the protocol. Due to wrong implementation and misunderstandings of servers and intermediaries they seem to just throw their hands up and give up all optimizations which means they end up just starting over every time because it always works, but is slower and wasteful. I was thinking it is a good opportunity to clarify these situations (e.g. better support for range requests in future browser versions).
My Chrome is v34, my OS win7/64

Chris
This email message is intended only for the use of the named recipient. Information contained in this email message and its attachments may be privileged, confidential and protected from disclosure. If you are not the intended recipient, please do not read, copy, use or disclose this communication to others. Also please notify the sender by replying to this message and then delete it from your system.

Received on Wednesday, 9 April 2014 13:32:41 UTC