哪个更好的获取文件 - iOS代码中的FTP或HTTP?

时间:2013-04-23 12:29:34

标签: iphone ios ipad tomcat ftp

我必须从FTP中提取一组图像。

我通过给出图像的服务器URL来尝试使用tomcat服务器,它看起来很快很好。要对从FTP服务器提取的FTP文件进行研究,请从apple SimpleFTPSample

获取样本

在示例中,有一个代码可以从FTP中提取图像,但是它太慢而无法提取图像。

为什么要花一么多时间拍摄一张照片?如果我必须得到一些图像,我不能想象时间延迟?

谢谢, Easwar

3 个答案:

答案 0 :(得分:5)

作为Daniel states here

  

什么使FTP更快:

     

在发送的文件中没有添加元数据,只是原始二进制文件

     

从不分块编码“开销”

     

什么使HTTP更快:

     

重用现有的持久连接可以提高TCP性能

     

流水线操作可以更快地从同一服务器请求多个文件

     

(自动)压缩可以减少发送的数据

     

没有命令/响应流程可以最大限度地减少额外的往返次数

     

最终,净结果当然因具体而异   细节,但我会说,对于单次静态文件,你不会   能够衡量差异。对于单拍小文件,你   使用FTP可能会更快(除非服务器很长   往返距离)。获取多个文件时,HTTP应该是   更快。

使用以下委托方法跟踪上传进度:

- (void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite

totalBytesWritten / totalBytesExpectedToWrite gives me the upload percentage.

答案 1 :(得分:0)

什么使FTP变慢:

每次为每个文件建立连接。

在此我不确定:在端口X(可能是22)上完成了手动操作,数据传输在端口Y中完成(可能是21)

什么使HTTP变慢: https标题。

对于一个大文件IO会使用FTP,一堆小文件HTTP,一个或几个小文件:我可以在10秒内复制粘贴的代码:)

如果您关心服务器端要求,FTP需要FTP服务器,并且设置权限和HTTP服务器通常已经存在。

防火墙:通常是http授权,ftp拒绝

答案 2 :(得分:0)

FTP远比HTTP复杂: 必须执行几个命令才能请求文件 2应创建另一个TCP连接以传输文件数据

因此,如果您的应用程序对延迟敏感,则HTTP是最佳选择。