Ftp – enable/disable resuming downloads feature on the server side

ftphttphttps

How is it that some servers doesn't allow resuming downloads?
Where – in terms of server configurations – you have to configure to disable/enable this feature?
Is it an http config? or it has something to do with your TCP connection? or both?
of course the problem isn't specific to http. FTP and HTTPS protocols must have the same config, right? is there any workaround to this issue?
Of course i'm just looking for a platform independent answer to this question. you might answer with reference to your experience with specific platforms (Windows-IIS, Linux-apache or whatever).

PS.
1- I'm not asking about hosted file-sharing services (like rapidshare, etc… ) whose business model depends on such feature. As far as I understand it, they change their URL everytime you ask for a file. but take for example http://ocw.yale.edu. it doesn't allow resuming your downloads after you become disconnected from its servers. another example is ted videos. once your connection is lost for whatever the reason, you have to start over.

2- and i'm not asking whether you are enable to resume your downloads on the client side. for the sake of this question, suppose that on the client side, I've the tools to resume my downloads.

Best Answer

FTP and HTTP are completely different protocols, so the mechanisms are different.

FTP clients uses the REST command to inform the server that the next file transfer (either download or upload) will start from a specific point in the file:

> REST 12345
< 350 Restarting at 12345.
> RETR foo.tar
< 150 Opening BINARY mode data connection

HTTP client use the Range header to request that the server send a specific portion of the file:

> GET /foo.tar HTTP/1.1
> Range: bytes=12345-
>
< 200 OK HTTP/1.1
< Content-Range: bytes=12345-