什么是FTP
本地主机上的用户,向远程主机上传或者下载文件。 用户通过一个FTP用户代理与FTP服务器交互。
文件传输过程
- 用户提供远程主机的主机名:在本地主机的FTP客户机进程与远程主机FTP服务器进程之间建立TCP连接
- 提供用户标识和口令:在该TCP连接上向服务器传送
- 服务器验证通过后,进行文件传送(双向):将本地文件系统中的文件传送到远程文件系统(上传)、或从远程文件系统中得到文件(下载)
FTP与HTTP比较(控制连接与数据连接)
都是文件传输协议,并运行在TCP上。 FTP使用了两个并行的TCP连接:
- FTP的控制信息是外带传送(out-of-band):
使用分离的控制连接; HTTP的控制信息是带内传输(in-band): 请求和响应都是在传输文件的TCP连接中发送 - FTP协议是有状态的:
FTP服务器对每个活动用户会话的状态进行追踪,并保留;限制同时会话的总数。 HTTP协议是无状态的:不对用户状态进行追踪。 控制连接: 用于在两主机间传输控制信息(如用户标识、口令等)
数据连接: 用于准确传输文件。 当服务器收到一个文件传输的命令后(从远程主机上读或写),在20端口发起一个到客户机的数据连接。 在该数据连接上传送一个文件并关闭连接。
|