Did you know that the HTTP specification defines a method to download any part of the file located on a web server? So, if a client is downloading a large file, and the connection is broken, they can continue from the last successfully downloaded byte instead of starting all over again! BTW, that is how any MP3 search engine works…
And the solution is quite simple – all you need is to leverage two HTTP header elements:
- The Accept-Ranges element tells the client that it supports resuming downloads.
- The ETag (entity tag) element provides a unique ID identifying the session.
Interested? Then download the HTTP module that implements this solution from http://www.devx.com/dotnet/Article/22533/1954?pf=true. The concept is not new, but it is pretty cool!