
FTP是文件传输协议(File Transfer Protocol),用于在TCP/IP网络上将文件从一台计算机传输到另一台计算机,属于网络协议组的应用层协议。
FTP服务器:提供文件存储空间的计算机,通过FTP协议响应客户端请求。
FTP客户端:用户使用的工具(如命令行工具、图形化软件),用于发起文件传输请求。
控制连接:使用TCP端口21,负责传输命令(如登录、目录操作)和状态码。
数据连接:使用TCP端口20(主动模式)或动态端口(被动模式),实际传输文件数据。
ASCII模式:传输文本文件,自动处理换行符转换。
二进制模式:传输图片、视频等非文本文件,保持原始数据不变。
用户名/密码验证:需提供有效凭据访问受保护资源。
匿名FTP:允许用户以“anonymous”或“guest”登录,无需密码,常用于公开文件共享(如软件下载、文档分发)。
服务器管理员可设置用户权限(如只读、可上传、可删除),精细管理文件操作。
网站维护:上传HTML、CSS等文件至服务器。
数据备份:将本地数据定期备份至远程FTP服务器。
资源共享:企业或组织通过FTP分发内部文件。
1971年:Abhay Bhushan发布首个FTP规范(RFC114)。
1980年:RFC765取代RFC114,优化协议设计。
1985年:RFC959成为当前标准,支持被动模式、IPv6等特性。
SFTP(SSH文件传输协议):基于SSH加密,提供安全的文件传输。
FTPS(FTP over SSL/TLS):在FTP基础上添加SSL/TLS加密层。
HTTP/HTTPS:适用于网页文件传输,无需专用客户端。
云存储服务:如AWS S3、Google Drive,通过API实现高效文件管理。
广泛兼容性:支持所有主流操作系统(Windows、Linux、macOS)。
成熟稳定:历经数十年验证,适合传统应用场景。
功能丰富:支持断点续传、目录列表、权限管理等高级功能。
安全性不足:明文传输用户名、密码和数据,易被窃听或篡改。
配置复杂:需处理主动/被动模式、防火墙规则等问题。
效率较低:相比现代协议(如HTTP/2),传输速度较慢。
总结:FTP作为互联网基础协议,曾是文件传输的核心工具,但其明文传输特性导致安全性不足。现代应用中,建议优先选择SFTP、FTPS或云存储服务,仅在兼容性要求严格的场景下使用FTP。
