2011-07-29 50 views
4

我打算编写一个应用服务器(RESTFull API),允许客户端下载一个zip文件,但要求是下载必须是可恢复的(由于失败/网络断开)。可恢复文件下载协议

是否有任何特殊的协议?

如果是的请分享一些关于此的内容,我甚至无法在谷歌上找到任何东西。我正在尝试在Java(球衣)中做到这一点。谢谢

+1

Duplicate:http://stackoverflow.com/questions/6237079/resume-http-file-download-in-java – user423430

+1

感谢您的评论,但它似乎是客户端的讨论,而我正在寻找建议如果我需要在服务器端的任何特定的实现(文件的主机下载)。 –

+0

http://stackoverflow.com/questions/5011446/java-server-side-sending-file-with-resume-support – user423430

回答

8

对于可恢复的下载,您不需要了解任何特殊协议。 HTTP定义了“范围”标题。客户端使用Range标题指定他们想要下载的文件的哪些部分。

通过跟踪您下载的文件的哪些部分,以及是否中断,在您停止的地方继续执行可恢复的下载。

服务器端,你通常只需要关心被服务的资产是动态的还是静态的。

如果它是静态的,那么解决方案通常很简单,就是确保您的Web服务器(Apache或其他)启用了Range标头并让客户端拥有它。

如果它是动态的,则必须检查传入HTTP请求中是否存在Range标头,然后确保仅为资源的请求部分提供服务。还有一些额外的东西需要考虑,比如版本控制,缓存等等,我不会介绍它,但希望你能明白。

希望有帮助!