哪些FTP传输模式被广泛使用?

哪些FTP传输模式被广泛使用?,ftp,networking,standards-compliance,Ftp,Networking,Standards Compliance,在阅读FTP RFC(RFC959)时,我注意到一些我从未见过的模式被使用过,而且似乎并没有被流行的FTP软件(例如vsftpd)实现。特别是,对于STRU命令,通常仅使用文件模式“STRU F”,对于mode命令,通常仅使用流模式“mode S” 因此,问题是,当遵循开发可互操作的FTP客户端和服务器软件的最佳实践时: 支持其他STRU选项(记录和页面)有用吗?这些看起来很过时 支持其他模式选项(块和压缩)有用吗?我可以从compressed中看出这一点,但我特别想知道是否有客户机/服务器会

在阅读FTP RFC(RFC959)时,我注意到一些我从未见过的模式被使用过,而且似乎并没有被流行的FTP软件(例如vsftpd)实现。特别是,对于STRU命令,通常仅使用文件模式“STRU F”,对于mode命令,通常仅使用流模式“mode S”

因此,问题是,当遵循开发可互操作的FTP客户端和服务器软件的最佳实践时:

  • 支持其他STRU选项(记录和页面)有用吗?这些看起来很过时
  • 支持其他模式选项(块和压缩)有用吗?我可以从compressed中看出这一点,但我特别想知道是否有客户机/服务器会期望block出现在那里
  • 有没有关于哪些现有FTP实现支持哪些选项的调查

(关于模式一,我可以理解为什么压缩是有用的,我更想知道是否有任何客户机/服务器会期望块模式存在)。

我建议搜索开源FTP客户机和服务器(尤其是那些仍在积极更新的客户机和服务器),看看有多少客户机和服务器实现了这些“过时”的传输模式


我曾经(大约七年前)开发了一个FTP客户端,实现了最基本的传输模式(ASCII和二进制,如果我没记错的话)。在使用任何服务器时都不会出现问题。

听起来您最关心的是互操作性。答案在客户端和服务器之间有点不同

对于服务器,您希望实现客户端使用的基本模式。对于每个客户机,您需要至少支持一种配置,因此组合的数量应该相对较低。除此之外,支持主动和被动模式可能是主要的补充(mozilla社区很长时间以来一直希望获得被动支持,等等)


如果您是客户,提供良好的URL支持和日期/时间处理可能是最大的障碍

我维护一个自定义FTP服务器,并定期参考以了解此类问题。具体而言,我遵循了at的类型/模式/STRU建议,到目前为止没有任何问题


除了“STRU F”之外,我所见过的connect客户机都没有发送STRU请求。类似地,我只见过“模式S”。

要清楚,ASCII不是传输模式,它是一种表示类型。传输模式或模式是S、B、C(流、块、压缩)中的一种。