我打算编写一个应用程序服务器(RESTFull API)以允许客户端下载zip文件,但要求下载必须是可恢复的(由于故障/网络断开连接)。
是否有任何特殊协议?
如果是,请分享一些内容,我甚至无法在谷歌上找到任何东西。我想用Java(泽西岛)做这件事。谢谢
答案 0 :(得分:8)
对于可恢复的下载,您无需了解特殊协议。 HTTP定义“Range”标头。客户端使用Range标头指定要下载的文件的哪些部分。
通过跟踪您下载的文件的哪些部分,以及是否被中断,从中断的地方恢复来实现可恢复的下载。
服务器端,您通常只需要关心所服务的资产是动态的还是静态的。
如果它是静态的,解决方案通常就像确保您的Web服务器(Apache或其他)打开Range标头并让客户端拥有它一样简单。
如果它是动态的,您必须检查传入HTTP请求中是否存在Range标头,然后确保您只提供资产的请求部分。还有一些需要考虑的其他事项,比如版本控制,缓存等等,我不会介绍,但希望你能得到这个想法。
希望有所帮助!