I’m trying to stream MP4 files through Apache / Nginx using a PHP proxy for authentication. I’ve implemented byte-ranges to stream for iOS as outlined here: http://mobiforge.com/developing/story/content-delivery-mobile-devices. This works perfectly fine in Chrome and Safari but…. the really odd thing is that if I monitor the server requests to the php page, three of them occur per page load in a browser. Here’s a screen shot of Chrome’s inspector (going directly to the PHP proxy page):

As you can see, the first one gets canceled, the second remains pending, and the third works. Again, the file plays in the browser. I’ve tried alternate methods of reading the file (readfile, fgets, fread, etc) with the same results. What is causing these three requests and how can I get a single working request?
The first request is for the first range of bytes, preloading the file. The browser cancels the request once it has downloaded the specified amount.
The second one I’m not sure about…
The third one is when you actually start playing the media file, it requests and downloads the full thing.