also you may need to check on buffer sizes .....    i bet the browser does some tuning that your app does not do.

for example if the http stream is coming back with 4 meg chunks then the client buffer size should be some multiple of that value so that it does not have to alloc more storage while downloading.

stuff like that can make a huge difference in perf.