Some things I should take care about:
* If-(Unm|M)odified-Since
This one is totally ignored. Code should be added to correctly return 304.
* Multiple byte ranges
Totally unsupported but requested with multiple byte ranges can be generated.
* Handling of files without Content-Length
Those ones wouldn't work now.
* Get piece of file when issuing a HEAD request
Why not? This way we will silently complete all of the partial files.
* File recheck
Currently when file is fully downloaded it gets stored in real file tree to be served by production-grade web-server. This way we will never see any requests to that file. Finding oldest ones and moving them to .parts would suffice.
* File time
Currently when file is downloaded it gets current time, not the time in Last-Modified.