有人可以告诉我主动FTP和被动FTP有什么区别吗?哪一个更好?
主动和被动是FTP可以运行的两种模式。
对于后台,FTP实际上使用客户端和服务器之间的两个通道,即命令和数据通道,它们实际上是独立的 TCP连接。
命令通道用于命令和响应,而数据通道用于实际传输文件。
将命令信息和数据分离到单独的通道中,这是一种能够将命令发送到服务器而不必等待当前数据传输完成的好方法。根据RFC,这仅适用于命令的子集,例如退出,中止当前传输以及获取状态。
在活动模式下,客户端建立命令通道,但是服务器负责建立数据通道。例如,如果客户端计算机受防火墙保护并且不允许来自外部方的未经授权的会话请求,则实际上可能是一个问题。
在被动模式下,客户端建立两个通道。我们已经知道它可以在活动模式下建立命令通道,并且在这里也一样。
但是,它随后请求服务器(在命令通道上)开始侦听端口(由服务器决定),而不是尝试建立与客户端的连接。
作为此过程的一部分,服务器还将选择的端口号返回给客户端,以便客户端知道如何连接到该端口。
客户端知道这一点后,便可以成功创建数据通道并继续。
RFC中提供了更多详细信息:https : //www.ietf.org/rfc/rfc959.txt