【问题标题】:Which file upload protocol (FTP / HTTP) is good for mobile with highly unreliable network哪种文件上传协议(FTP / HTTP)适合网络高度不可靠的移动设备
【发布时间】:2016-06-13 20:14:17
【问题描述】:

我一直在 Android 中进行文件上传,发现 HTTP 和 FTP 都可以用于文件上传,但 Android 本身支持 HTTP,但 FTP 也是通过 Apache commons library发现两者各有优缺点但从手机的角度来看不是,因为在手机中网络中断非常普遍,

所以我的问题

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

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

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

【问题讨论】:

  • 人们还在使用 FTP?现在是 2016 年,上次我检查了一下,FTP 非常不安全。
  • 不幸的是,是的:D,一些遗留服务器拒绝迁移,迫使我们支持它

标签: android http file-upload ftp protocols


【解决方案1】:

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

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

HTTP 和 HTTPS 通常可以正常工作。通过使用 Range 请求,您还可以下载部分文件,这在恢复中断的下载或仅加载文档的必要部分(如大 PDF 文件的部分)时很重要。 FTP 的恢复能力有限,但不如 HTTP Range 请求有用。

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

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

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

如果您的服务器没有 HTTP 接口,那么您不能使用 HTTP。但仅对“FTP 存储库”的描述并没有提供足够的信息来说明它的访问方式。

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

如果它坏了,你需要找出从哪里重新开始上传(检查远程长度),然后使用 REST 命令。

【讨论】:

  • 感谢您的详细解释,消除了我的大部分疑问,将查看服务器接口
  • 创建http接口,之前FTP存储只有2个参数认证
【解决方案2】:

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

至于问题 2 - 否。 FTP 和 HTTP 是不同的协议。您使用其中之一。您通常可以在浏览器中查看 FTP,因为浏览器实现了这两种协议。使用 HTTP 与 FTP 服务器通信是行不通的。

【讨论】:

  • 如您所知,android 删除了 apache 客户端,考虑到效率,而且它在文件上传的任何文档中都没有谈论 FTP 协议,因此可以假设操作系统优先考虑哪个是对用户来说更可靠,至于我的用例,当有很多网络问题时这是最好的
  • @Ujju:“android 删除了 apache 客户端,牢记效率”——嗯,不。 Google 删除了 HttpClient,因为他们无法在保持二进制兼容性的同时继续维护它。欢迎您使用 Apache 为 Android 独立打包的 HttpClient 库。 “可以假设操作系统优先选择对用户来说更可靠的” - 我根本不会做出这样的假设。 Google 的开发人员有限,Android 设备的 ROM 很小,有助于降低价格。因此,并非所有东西都能进入 Android。 HTTP 更受欢迎。
【解决方案3】:

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

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

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

【讨论】:

  • 我知道差异,但就像你说的那样,带宽和可靠性是移动设备的关注点。如果根据您的回答,FTP 似乎更可靠,但事实并非如此
  • 我非常怀疑 HTTP 使用的带宽更少。您有此声明的来源吗?
  • @SteffenUllrich stackoverflow.com/questions/717200/… 和谷歌上的许多其他人
  • @Luke:您提供的链接是关于开始传输第一个文件所需的时间。这与带宽无关。 FTP 和 HTTP 都以二进制形式传输数据(与例如邮件相反),并且都没有太多的协议开销。因此,它们在传输文件所需的字节数上并没有太大差异。
猜你喜欢
  • 2012-03-23
  • 2012-12-26
  • 1970-01-01
  • 2010-11-18
  • 2011-01-06
  • 1970-01-01
  • 1970-01-01
  • 2018-07-29
  • 1970-01-01
相关资源
最近更新 更多