哪种文件上传协议 (FTP / HTTP) 适用于网络高度不可靠的移动设备
Which file upload protocol (FTP / HTTP) is good for mobile with highly unreliable network
我一直致力于 Android 中的文件上传,发现 HTTP 和 FTP 都可用于文件上传,但 Android 原生支持 HTTP,但是 FTP是通过Apache commons library,也发现两者各有利弊但不是从手机的角度, 因为手机断网很常见,
所以我的问题
1) 我应该坚持 HTTP 多部分文件上传,无论在手机上还是可以使用 FTP
2) 我的 Server 是 FTP 存储库,我还能使用 HTTP 上传没有问题吗
3) FTP 是否像 HTTP 一样使用分段上传或经常中断时如何处理网络问题
错误的问题。客户 OS 无关紧要,也不应该决定你的技术。两者都有图书馆。两者各有优势,请选择适合您的用例的那个。这可能是你应该问的。
至于问题 2- 没有。 FTP 和 HTTP 是不同的协议。您使用另一个。您通常可以在浏览器中查看 FTP,因为浏览器同时实现了这两种协议。使用 HTTP 与 FTP 服务器通信是行不通的。
这取决于您想要的带宽和可靠性 ;) 所以也许所有智能手机 OS 都有相同的答案:
- FTP 使用更多带宽,文件传输更可靠,需要 FTP 服务器。
- HTTP 可以使用较少的带宽,并且由于其更有效的压缩而可以使用较少的带宽,可靠性稍差,需要带有实现上传逻辑的服务器页面的 HTTP 服务器。
两者都适用于 Android,因此您的选择取决于对这些因素的评估。
1) Should I stick to HTTP multi-part file upload no matter what in mobiles or is it fine to use FTP
由于设计 FTP 在任何使用私有 IPv4 地址的网络中都是一个非常糟糕的选择 - 由于 IPv4 地址短缺可能是大多数移动网络的情况。虽然它可能在一个网络中工作,但在另一个网络中无法工作,如果您尝试将 FTP 与 SSL 结合使用以保护传输,它会变得更糟。
HTTP 和 HTTPS 通常可以正常工作。通过使用范围请求,您还可以下载部分文件,这在恢复中断的下载或仅加载文档的必要部分(如大 PDF 文件的部分)时非常重要。 FTP 具有有限的恢复能力,但不如 HTTP Range 请求有用。
至于恢复上传 FTP 有 REST(重启)命令。但是您需要先找出服务器接收了多少数据,以便您知道从哪里重新启动。 HTTP 没有用于上传的内置简历。您可以在 POST 或 PUT 请求中使用 Content-Range
header,但您的服务器需要了解如何处理此 header。或者您可以将上传分散到多个请求上,这同样需要特殊的服务器端代码来在服务器上重建原始文件。
两种协议的开销大致相同,除了非常小的文件外,其他任何文件都可以忽略。
2) My Server is FTP storage repository, can I still use HTTP to upload without issue
如果您的服务器没有 HTTP 接口,那么您将无法使用 HTTP。但是仅仅 "FTP storage repository" 的描述并没有提供足够的信息来说明它的访问方式。
3) Does FTP use multipart upload just like HTTP or how is network issues handled when there is frequent breaks
如果它损坏了,您需要找出从哪里重新开始上传(检查远程长度),然后使用 REST 命令。
我一直致力于 Android 中的文件上传,发现 HTTP 和 FTP 都可用于文件上传,但 Android 原生支持 HTTP,但是 FTP是通过Apache commons library,也发现两者各有利弊但不是从手机的角度, 因为手机断网很常见,
所以我的问题
1) 我应该坚持 HTTP 多部分文件上传,无论在手机上还是可以使用 FTP
2) 我的 Server 是 FTP 存储库,我还能使用 HTTP 上传没有问题吗
3) FTP 是否像 HTTP 一样使用分段上传或经常中断时如何处理网络问题
错误的问题。客户 OS 无关紧要,也不应该决定你的技术。两者都有图书馆。两者各有优势,请选择适合您的用例的那个。这可能是你应该问的。
至于问题 2- 没有。 FTP 和 HTTP 是不同的协议。您使用另一个。您通常可以在浏览器中查看 FTP,因为浏览器同时实现了这两种协议。使用 HTTP 与 FTP 服务器通信是行不通的。
这取决于您想要的带宽和可靠性 ;) 所以也许所有智能手机 OS 都有相同的答案:
- FTP 使用更多带宽,文件传输更可靠,需要 FTP 服务器。
- HTTP 可以使用较少的带宽,并且由于其更有效的压缩而可以使用较少的带宽,可靠性稍差,需要带有实现上传逻辑的服务器页面的 HTTP 服务器。
两者都适用于 Android,因此您的选择取决于对这些因素的评估。
1) Should I stick to HTTP multi-part file upload no matter what in mobiles or is it fine to use FTP
由于设计 FTP 在任何使用私有 IPv4 地址的网络中都是一个非常糟糕的选择 - 由于 IPv4 地址短缺可能是大多数移动网络的情况。虽然它可能在一个网络中工作,但在另一个网络中无法工作,如果您尝试将 FTP 与 SSL 结合使用以保护传输,它会变得更糟。
HTTP 和 HTTPS 通常可以正常工作。通过使用范围请求,您还可以下载部分文件,这在恢复中断的下载或仅加载文档的必要部分(如大 PDF 文件的部分)时非常重要。 FTP 具有有限的恢复能力,但不如 HTTP Range 请求有用。
至于恢复上传 FTP 有 REST(重启)命令。但是您需要先找出服务器接收了多少数据,以便您知道从哪里重新启动。 HTTP 没有用于上传的内置简历。您可以在 POST 或 PUT 请求中使用 Content-Range
header,但您的服务器需要了解如何处理此 header。或者您可以将上传分散到多个请求上,这同样需要特殊的服务器端代码来在服务器上重建原始文件。
两种协议的开销大致相同,除了非常小的文件外,其他任何文件都可以忽略。
2) My Server is FTP storage repository, can I still use HTTP to upload without issue
如果您的服务器没有 HTTP 接口,那么您将无法使用 HTTP。但是仅仅 "FTP storage repository" 的描述并没有提供足够的信息来说明它的访问方式。
3) Does FTP use multipart upload just like HTTP or how is network issues handled when there is frequent breaks
如果它损坏了,您需要找出从哪里重新开始上传(检查远程长度),然后使用 REST 命令。