Not only the Web but the entire broadband infrastructure is based on the idea that uploads will by and large be much smaller than downloads, something that is not the case on a LAN. I recently got a fiber connection at home and it’s the zippy upload speed that impresses me the most – if you’ve ever tried to upload a video using a DSL connection you know what I mean.
We have recently come across a couple instances where a web app uploads huge chunks of data in a POST form and the user is forced to wait until it finishes. When examining the application at the HTTP level, we see that the huge chunk of data is downloaded as part of the HTML of the previous page. While the download takes less than a second, the upload takes anywhere from 20 to 40 seconds, even on this blazing fiber connection of mine!
This is a perfect example of why testing inside the firewall with a 1GB Ethernet connection can mask problems that end users “out there” are going to experience. In the second case that we recently encountered, the graph of a single user test looked like this:
The long red bars show the time it takes to upload the form which it just finished downloading. I have to assume that it's not an exact copy of the data it downloaded but it sure looks the same! My recommendation is to find a way to eliminate the redundancy somehow, so that only the changes are uploaded instead of the whole block.
By the way, here are the results of a speed test of my fiber connection from www.speakeasy.net - fast for sure, but MUCH slower than a local Ethernet connection on uploads:
Here endeth today's lesson in uploads vs downloads. Class dismissed!