协议简介:
FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。
默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。
工作方式:
分主动模式(PORT)和被动模式(Passive)
主动模式
可以这么记——FTP服务器,主动把数据给爷送过来。
客户端发送一个PORT命令到FTP服务器的21端口,这个命令包含了我客户端用什么端口接收数据,待会你FTP服务器用20端口 主动 和我告诉你的端口建立连接传数据。因为这么一个主动啊,内网用户可能无法使用PORT登录公网FTP服务器,为啥?防火墙大爷拦着,没证不让进。
被动模式
这么记——我服务器才是大爷,自个过来取,我就躺在这不动。
客户端发送一个Pasv命令到FTP服务器的21端口,服务器大爷说,我开放了XXXX端口,我就不动了,你过来吧。同理,公网用户可能无法使用PASV模式登录内网FTP服务器,为啥?防火墙拦着。
FTP登录:
授权账号登录
必须有授权的用户名密码才能登录
ftp://用户名:密码@FTP服务器IP或域名:FTP命令端口/路径/文件名
匿名登录
有些资源希望被共享,任何人都能下载,就直接ftp://用户名:密码@FTP服务器IP或域名:FTP命令端口/路径/文件名
地址格式:
ftp://用户名:密码@FTP服务器IP或域名:FTP命令端口/路径/文件名
上面的参数除FTP服务器IP或域名为必要项外,其他都不是必须的。
传输模式:
ASCII传输模式
一些文本可以使用该模式,该模式会自动将文本格式转换为传输目的地所用操作系统的存储文本文件的格式,但如果是可执行程序,压缩包进行了更改,就会出错。这时候就使用二进制传输模式
二进制传输模式
逐位地传输文件,文件原封不动得传过去
参考链接:https://baike.baidu.com/item/FTP%E5%8D%8F%E8%AE%AE/7651119