比较HTTP和FTP以传输文件

Mys*_*tic 116 ftp network-programming http file-transfer

通过Internet传输文件有哪些优点(或限制)?

(我知道两种协议的安全形式.我希望通过个人经验在性能,可靠性,文件大小限制等方面进行比较.)

Joh*_*ood 93

这是两者的性能比较.HTTP对小文件的请求 - 响应响应更快,但如果正确调整,FTP对于大文件可能更好.过去,FTP通常被认为更快.FTP需要一个控制通道,并且除了TCP状态之外还要维护状态,但HTTP不需要.在数据开始在FTP中传输之前有6个数据包传输,但在HTTP中只有4个.

我认为适当调整的TCP层对速度的影响要大于应用层协议之间的差异.Sun Blueprint 了解Tuning TCP有详细信息.

这是对每个协议的个别特征的另一个很好的比较.

  • +1好的答案.我认为FTP的日子已经过去了,它已经不再那么重要了.它也是一个绝对*猪*实施. (22认同)
  • "小"或"大"文件的大小是多少? (7认同)
  • **1996 年 8 月 16 日**……真的吗?即使在您 2009 年的回答中,您也不能指望这能代表当前的事态。-1 (2认同)

Bit*_*ons 28

我只是通过FTP和HTTP对文件传输进行基准测试:

  • 超过两个非常好的服务器连接
  • 使用相同的1GB .zip文件
  • 在相同的网络条件下(一个接一个地测试)

结果:

  • 使用FTP:6分钟
  • 使用HTTP:4分钟
  • 使用并发http下载软件(fdm):1分钟

所以,基本上处于"现实生活"的情况下:

1)下载一个大文件时,HTTP比FTP快.

2)HTTP可以使用并行块下载,这使其比FTP快6倍,具体取决于网络条件.

  • 这似乎很轶事. (14认同)
  • @anecdotal他提供了数字(来自研究的事实),这比迄今为止的任何其他答案都要少. (4认同)
  • 由于开销较低,ftp 对于单个文件来说速度更快。如果您的测试得到不同的答案,请尝试另一个客户端(或者不太可能,另一个服务器)。http 的下载速度不能超过最大比特率,任何试图超过最大比特率的并行选项都会引入协议开销。对比。多个文件可以通过 FTP 以线路速度连续传输,无需协议开销。FTP 的并行选项使用多个 TCP 连接,通常超过单点连接(例如 SMB3.1 vSMB2.1、3.x 可以使用多连接)。 (2认同)

Pis*_*3.0 25

许多防火墙都会丢弃不是端口80或443的出站连接(http和https); 有些甚至连接到那些不是HTTP(S)的端口.可能允许也可能不允许FTP,更不用说有效/ PASV模式.

此外,HTTP/1.1允许更好的部分请求("仅从字节123456发送到文件末尾"),条件请求和缓存("仅在内容更改时发送/如果上次修改日期更改")和内容压缩(gzip的).

HTTP通过代理更容易使用.

根据我的轶事证据,HTTP更易于使用丢弃/慢速/片状连接工作; 例如,在(重新)启动传输之前不需要(重新)建立登录会话.

OTOH,HTTP是无状态的,因此您必须进行身份验证并构建一条"自己什么时候做"的路径.

我注意到的唯一速度差异是传输大量小文件:带流水线的HTTP速度更快(减少往返次数,尤其是在高延迟网络上显着).

请注意,HTTP/2提供了更多的优化,而FTP协议几十年来没有看到任何更新(甚至FTP的扩展也没有被用户吸引).因此,除非您通过时间机器传输文件,否则HTTP似乎已经获胜.

(切向:有更适合文件传输的协议,例如rsyncBitTorrent,但那些没有那么多的思想共享,而HTTP是Everywhere™)


bri*_*zil 12

一个考虑因素是FTP可以使用非标准端口,这可以使防火墙变得困难(特别是如果您使用SSL).HTTP通常位于已知端口上,因此这很少成为问题.

如果您决定使用FTP,请务必阅读有关主动和被动FTP的信息.

在性能方面,在一天结束时,他们都是直接沿着TCP连接喷出文件,所以应该大致相同.