哪种文件上传协议(FTP / HTTP)适用于具有高度不可靠网络的移动设备

时间:2016-03-01 12:05:16

标签: android http file-upload ftp protocols

我一直致力于Android中的文件上传,发现HTTP和FTP都可用于文件上传,但Android本身支持HTTP,但FTP通过 Apache commons library ,也发现两者都有自己的优点和缺点 但不是移动视角 ,因为在移动网络中网络中断很常见,

所以我的问题

1)无论手机中的内容是什么,或者使用FTP都可以,我是否应该坚持使用HTTP多部分文件上传

2)我的服务器是FTP存储库,我仍然可以使用HTTP上传而不会出现问题

3) FTP是否像HTTP一样使用分段上传,或者在频繁休息时如何处理网络问题

3 个答案:

答案 0 :(得分:2)

错误的问题。客户端操作系统并不重要,也不应该决定您的技术。任何一个都有图书馆。两者都有优势,选择适合您用例的那个。这可能是你应该问的问题。

问题2-没有。 FTP和HTTP是不同的协议。你使用另一个。您通常可以在浏览器中查看FTP,因为浏览器会实现这两种协议。使用HTTP与FTP服务器通信只是不起作用。

答案 1 :(得分:2)

  

1)无论手机中的内容是什么,或者使用FTP都可以,我是否应该坚持使用HTTP多部分文件上传

由于设计,FTP在使用私有IPv4地址的任何网络中都是一个非常糟糕的选择 - 由于IPv4地址的不足,可能是大多数移动网络的情况。虽然它可能在一个网络中工作,但它不能在另一个网络中工作,如果你尝试将FTP与SSL结合起来以保护传输,它会变得更糟。

HTTP和HTTPS通常没有问题。通过使用Range请求,您还可以下载部分文件,这在恢复损坏的下载或仅加载文档的必要部分(如大型PDF文件的某些部分)时非常重要。 FTP具有有限的恢复功能,但没有HTTP范围请求那么有用。

至于恢复上传,FTP具有REST(重启)命令。但您需要首先了解服务器接收了多少数据,以便知道重新启动的位置。 HTTP没有用于上传的内置简历。您可以在POST或PUT请求中使用Content-Range标头,但您的服务器需要了解如何处理此标头。或者您可以将上传分散到多个请求上,这些请求再次需要特殊的服务器端代码来重建服务器上的原始文件。

两种协议的开销大致相同,除了非常小的文件外,其他任何内容都可以忽略。

  

2)我的服务器是FTP存储库,我仍可以使用HTTP上传而不会出现问题

如果您的服务器没有HTTP接口,则无法使用HTTP。但只是描述" FTP存储库"没有提供有关其访问方式的足够信息。

  

3)FTP是否像HTTP一样使用分段上传,或者在频繁休息时如何处理网络问题

如果它坏了你需要找到上传重启的位置(检查远程长度),然后使用REST命令。

答案 2 :(得分:1)

这取决于你想要的带宽和可靠性;)所以也许所有智能手机操作系统都有相同的答案:

  • FTP使用更多带宽,文件传输更可靠,需要FTP服务器。
  • HTTP可以使用更少的带宽,并且可以使用更少的高效压缩,可靠性稍差,需要HTTP服务器和服务器页面实现上传逻辑。

它们都可用于Android,因此您的选择取决于评估这些因素。