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



我一直在Android中研究文件上传,发现HTTP和FTP都可以做文件上传,但是Android原生支持HTTP,但是FTP是通过Apache共享库,也发现两者都有其优点和缺点,但从移动设备的角度来看并不多,因为在移动设备中网络中断非常普遍,

所以我的问题

1)无论手机中有什么,我都应该坚持HTTP多部分文件上传还是可以使用FTP

2)我的服务器是FTP存储库,我仍然可以使用HTTP上传而没有问题吗

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

1)无论手机中有什么,我都应该坚持HTTP多部分文件上传还是可以使用FTP

由于设计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-否。 FTP 和 HTTP 是不同的协议。 您使用另一个。 您通常可以在浏览器中查看 FTP,因为浏览器同时实现了这两种协议。 使用HTTP与FTP服务器通信是行不通的。

这取决于

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

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

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

最新更新