FTP协议的应用和工作方式
什么是FTP?FTP跟Http一样都是属于网络协议,FTP 是 TCP/IP 协议组中的协议之一
FTP对于我们有什么作用,它可以帮助我们从两台计算机之前传输文件,完成两台计算机之间的拷贝,从远程计算机传输文件到自己的计算机上,称之为“下载”文件。若将文件从自己计算机上传输到远程计算机上,则称之为“上载”文件,也可以叫做上传文件。
FTP协议在实际的使用中,有哪些应用呢,通常来说,我们可以按照FTP协议搭建FTP Server,跟其他大多数网络软件一样,使用客户端到服务端的架构,用户通过一个客户端软件连接到远程计算机上运行的服务器程序。安照 FTP 协议提供服务,进行文件传送的计算机就是Ftp server,我们也叫做 FTP服务器,按照FTP协议与服务器传送文件的电脑就是FTP客户端。用户要连上FTP 服务器,就要用到 FTP 的客户端软件。
在网络协议和软件的设计中,都有安全认证,为了确保文件的安全,FTP有三种授权方式,第一种是最常见的,普通授权,即帐号密码登录,用户只需要输入帐号密码,即可连接上远程FTP,自由上传下载。
第二种,是地址格式,我们可以通过域名或者IP地址,直接访问FTP服务。
第三种,是匿名格式,采用匿名授权的这类服务器的目的是向公众提供文件拷贝服务,不要求用户事先在该服务器进行登记注册,也不用取得FTP服务器的授权,人们只要知道特定信息资源的主机地址,就可以用匿名FTP登录获取所需的信息资料
FTP协议的传输模式,有两种方式:ASCII传输模式和二进制传输模式。传输模式与这两台计算机所处的位置、联接的方式都没有关系。
我们先来讲一下,ASCII传输模式,如果用户正在传输文件包含简单ASCII码文本,例如HTML文本,另外在远程机器上运行的是不同的操作系统,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。
但是如果使用ascii传输模式传输可执行文件,压缩文件,图片等就会很容易出错,这是因为ascii会将文件转译,或者丢失部分数据,于是,就有了下面的二进制传输,
在二进制传输中,会自动保存文件的位序,原始和拷贝是逐位一一对应的,不会进行转译,所以,二进制的传输,相比ascii传输速度也会更快。
下面就是FTP的工作方式,有两种模式,主动模式和被动模式,
主动模式下,客户端首先和服务器的21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过20端口连接至客户端的指定端口发送数据。 服务器端必须和客户端建立一个新的连接用来传送数据。
被动模式下,在建立控制通道的时候和主动模式一样,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开大于1024的端口,并且通知客户端在这个端口上传送数据,客户端连接FTP服务器的该端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候服务器端不再需要建立一个新的和客户端之间的连接。
目前各大最新版的客户端功能都非常类似,不必拘泥于某一种,由于Filezilla是免费开源,并且跨平台,我们在后面的课程在各个操作系统上都会使用到,所以,我们会详细讲一下Filezilla的使用,其他FTP客户端的使用原理也是一样。