文件传输协议:FTP(和HTTP的异同)

一个典型的FTP会话

用户坐在一台主机(本地主机)前面,向一台远程主机传输(或接收来自远程主机的)文件。为使用户能访问它的远程账户,用户必须提供一个用户标识和口令。在提供了这种授权信息后,用户就能从本地文件系统向远程主机文件系统传送文件,反之亦然。

HTTP和FTP异同

HTTP和FTP都是文件传输协议,并且有很多共同的特点,例如,它们都运行在TCP上。然而,这两个应用层协议也有一些重要的区别。其中最显著的就是FTP使用了两个并行的TCP连接来传输文件,一个是控制连接(control connection),一个是数据连接(dataconnection)。

  • 控制连接用于在两主机之间传输控制信息,如用户标识、口令、改变远程目录的命令以及“存放(put)”和“获取(get)”文件的命令。
  • 数据连接用于实际发送一个文件。

因为FTP协议使用一个独立的控制连接,所以我们也称FTP的控制信息是带外( out-of-band)传送的。如你所知,HTTP协议是在传输文件的同一个TCP连接中发送请求和响应首部行的。因此,HTTP也可以说是带内(in- band)发送控制信息的。FTP协议的控制连接和数据连接如图所示:
文件传输协议:FTP(和HTTP的异同)_第1张图片
当用户主机与远程主机开始一个FTP会话时,FTP的客户(用户)端首先在服务器21号端口与服务器(远程主机)端发起一个用于控制的TCP连接。FTP的客户端也通过该控制连接发送用户的标识和口令,发送改变远程目录的命令。当FTP的服务器端从该连接上收到一个文件传输的命令后,就发起一个到客户端的TCP数据连接。FTP在该数据连接上准确地传送一个文件,然后关闭该连接。在同一个会话期间,如果用户还需要传输另一个文件,FTP则打开另一个数据连接。因而对FTP传输而言,控制连接贯穿了整个用户会话期间,但是对会话中的每一次文件传输都需要建立一个新的数据连接(即数据连接是非持续的)。

FTP服务器必须在整个会话期间保留用户的状态( state)。特别是,服务器必须把特定的用户账户与控制连接联系起来,随着用户在远程目录树上徘徊,服务器必须追踪用户在远程目录树上的当前位置。对每个进行中的用户会话的状态信息进行追踪,大大限制了FTP同时维持的会话总数。而另一方面,HTTP是无状态的,即它不必对任何用户状态进行追踪。

你可能感兴趣的:(计算机网络自顶向下知识总结,http,服务器,网络)