Why Don't Browsers Support Download Resumption ~ D. Patrick Caldwell on Software Engineering

Tuesday, February 24, 2009

Why Don't Browsers Support Download Resumption

Yesterday, I was downloading a very large file from a co-worker's server. I forgot about the download when I shut my computer down and I got 6/7th of the file. Having realized my error, I tried to download the file again today and something went awry. I right clicked on the file, selected "Save Link As...," selected the file containing the first 6/7th of my download, and hit save. A dialog box came up explaining that the file already existed and asked if I'd like to overwrite the file. I clicked no, and much to my dismay, the dialog box went away and nothing else happened!

I'm concerned that my browser thinks that the only two reasonable options in this case are to overwrite the file or to not download at all. Why can't I just resume?

So, here's the thing . . . I can only guess that the reason they don't resume downloads is because they can't match the first part of the file to the file you're trying to download and therefore, you could end up corrupting the file if you try to resume it from the wrong source or at the wrong point. I say, "so what?" That should be my prerogative. If I'm convinced that I can resume the file, then who is my browser to try and stop me? After all, I'm sure as hell not gonna make a partial download any worse!

If you look at the W3C RFC for HTTP (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35) you'll see it already supports data range request headers. The iPhone uses this all the time to stream media efficiently and it works great. IMHO, browsers have no excuse to have shoddy support or to lack support altogether for file download resumes. If you start downloading at the byte after the last byte I downloaded, at least I could try to get that last 1/7th and save myself 6/7th of the time.
I really appreciate comments so please feel free to comment on my posts. Whether you agree or disagree, I'd love to hear from you. Also, feel free to link back to your own blog in your comments. You can even subscribe to an RSS feed of the comments on this thread.

© 2008 — , D. Patrick Caldwell, President, Autopilot Consulting, LLC

4 comments:

  1. I think both Firefox and Opera support download resuming in some form. IE never did, you'd have to install a download manager in that case. :)
    But I agree: download resuming is pretty basic and should work in every browser by default.

    ReplyDelete
  2. Lck, thanks for the comment. I looked into this before I wrote this article (and after I read your comment). I thought that IE did it for a little while but you're probably right. I have seen some firefox extensions that do it. Also, it's supposed to be built into firefox 3 (http://blog.codefront.net/2007/09/18/whats-new-in-firefox-3-download-resume/).

    But, even in that post, it only mentions resuming paused downloads. I think you're right though . . . it seems that resume support is getting stronger and there are third party utilities out there (maybe even using the measly 9 lines of code I have here: http://dpatrickcaldwell.blogspot.com/2009/02/file-download-resumer-for-http.html).

    Thanks again Lck and if I find any more information, I'll be sure to post it here.

    ReplyDelete
  3. Bill Gates once asked "Browser download resumption feature? Huh? What? Huh? What? Now what the hell kind of thing is that? Some kind of thingggg?".
    Henceforth it was company policy to not grasp the concept or be damned to the inferno.

    ReplyDelete