As I understand it:
The download manager records how much it's retrieved, and save this every few seconds / few minutes / when paused.
When resumed, it uses the Range headers for partial GET requests (for http - or equivalents for ftp/sftp) and appends what it receives to the file saved so far.
Not all web servers support partial gets, but the majority do.
See e.g.
HTTP/1.1: Method Definitions