我的问题如下:
1)在移动设备上,无论如何都应该坚持使用HTTP多部分文件上传,还是可以使用FTP?
2)我的服务器是FTP存储库,我能否仍然使用HTTP上传而不会出现问题?
3)FTP与HTTP一样使用多部分上传吗?在网络经常中断时如何处理?
1) 不管在移动设备上,我是否应该始终坚持使用HTTP多部分文件上传,还是可以使用FTP?
由于设计原因,FTP不适用于任何使用私有IPv4地址的网络 - 由于IPv4地址短缺的情况下,这可能是大多数移动网络的情况。虽然它可能在一个网络内工作,但在另一个网络内却不能正常工作,如果你尝试将FTP与SSL结合使用以保护传输,则情况会更糟。
相反,HTTP和HTTPS通常没有问题。通过使用范围请求,您还可以下载文件的一部分,这在恢复断点下载或仅加载文档的必要部分(例如大型PDF文件的部分)时非常重要。 FTP具有有限的恢复能力,但不如HTTP范围请求有用。
至于恢复上传,FTP具有REST(重新启动)命令。但是,您需要首先找出服务器接收了多少数据,以便知道从哪里重新开始。 HTTP没有内置的上传恢复功能。您可以在POST或PUT请求中使用Content-Range标头,但是您的服务器需要了解如何处理此标头。或者,您可以将上传分散在多个请求中,这再次需要特殊的服务器端代码来重建服务器上的原始文件。
两个协议的开销大致相同,除非是非常小的文件,否则可以忽略不计。
2) 我的服务器是FTP存储库,我仍然可以使用HTTP上传而不会出现问题吗?
如果您的服务器没有HTTP接口,则无法使用HTTP。但是,“FTP存储库”的描述并未提供足够的关于如何访问它的信息。
3) FTP是否像HTTP一样使用多部分上传,或者在频繁中断时如何处理网络问题?
如果上传中断,您需要找出从哪里重新开始上传(检查远程长度),然后使用REST命令。
这是一个错误的问题。客户端操作系统并不重要,也不应该决定你使用的技术。两种协议都有相应的库。选择适合你的用例的那个就好了。这可能是你本应该问的。
至于第二个问题,答案是否定的。FTP和HTTP是不同的协议。你只能使用其中一个。通常你可以在浏览器中查看FTP,因为浏览器实现了两种协议。但使用HTTP与FTP服务器通信是行不通的。
这取决于您想要的带宽和可靠性;) 所以也许所有智能手机操作系统都有相同的答案:
它们两者都适用于Android,因此您的选择取决于评估这些因素。