Ftp整理2: 命令图解

下面是一个简单实现的FTP的状态图,只用到响应码的首位。对于所有命令或命令序列有三种可能性:成功(S),失败(F)或错误(E)。在状态图中B代表开始,W代表等待响应。下面我们给出一个总图,总图可以包括的命令有:

ABOR,ALLO,DELE,CWD,CDUP,SMNT,HELP,MODE,NOOP,PASV,QUIT,SITE,PORT,SYST,STAT,RMD,MKD,PWD,STRU和TYPE

1,3    +-----+

--------------->| E |

| +-----+

|

+-----+  cmd +-----+   2   +-----+

| B |------------>| W |------------>| S |

+-----+ +-----+       +-----+

|

| 4,5    +-----+

--------------->| F |

+-----+

而下图可以包括的命令有:APPE,LIST,NLST,REIN,RETR,STOR和STOU。

3    +-----+

--------------->| E |

| +-----+

|

+-----+  cmd +-----+  2    +-----+

| B |------------>| W |------------>| S |

+-----+ ----> +-----+       +-----+

|   | |

|   | |   4,5    +-----+

|   |  --------------->| F |

| 1  |          +-----+

-------

第一幅图和第二幅图差别不大,第一幅图中如果出现了100系列响应会是错误,而在第二幅图中不会。下面是重命名过程:

+-----+  RNFR   +-----+  1,2    +-----+

| B |------------>| W |------------->| E |

+-----+ +-----+     ---->+-----+

| |     |

3    | |  4,5  |

----------------  -------  |

|             |  |   +-----+

| ----------------->| S |

|        |  1,3 |  |   +-----+

|       2 | -----------

|        | |    |

V        | |   |

+-----+  RNTO   +-----+ 4,5 -------->+-----+

|   |---------->| W |------------->| F |

+-----+      +-----+       +-----+

下面是重新启动命令,其中cmd代表APPE,STOR或RETR。

+-----+ REST   +-----+  1,2    +-----+

| B |------------>| W |------------->| E |

+-----+ +-----+     ---->+-----+

| |     |

3    | |  4,5  |

----------------  -------  |

|             |  |   +-----+

| ----------------->| S |

|        |   3 |  |   +-----+

|       2 | -----------

|        | |    |

V        | |   |

+-----+  cmd   +-----+ 4,5 -------->+-----+

|   |---------->| W |------------->| F |

+-----+   ---->+-----+       +-----+

|    |

|  1  |

--------

下图代表登录过程:

1

+-----+ USER   +-----+-------------->+-----+

| B |------------>| W | 2    ----->| E |

+-----+        +-----+------- | --->+-----+

| |    | | |

3 | | 4,5  | | |

-------------------  ------- | | |

|              | | | |

|              | | | |

|          ------------ |

|         1|    | |  |

V          |    | |  |

+-----+  PASS    +-----+ 2 | -------->+-----+

| |------------->| W |-------------->| S |

+-----+ +-----+ ------------>+-----+

| |  | |   |

3 | |4,5| |   |

--------------- ---------- |

|           | | | |

| | | | |

|        -----------------

|      1,3| | | |

V       | 2 | | |

+-----+ ACCT +-----+-- | ---------->+-----+

|   |------>| W | 4,5 ------------>| F |

+-----+ +-----+----------------->+-----+

 

APPE <文件名>

让服务器准备接收一个文件并把这些数据附加到指定的文件中,如果指定的文件不

存在就创建它。服务器会响应:125->数据连接已打开,传输启动;150->准备打开

数据连接;226->关闭数据连接,操作已成功;250->已完成;421->服务不可用;

425->无法打开数据连接;450、532、550、553->无法执行。

STOR <文件名> ;让服务器接收来自数据连接的文件,响应同APPE。

 

 FTP服务命令

FTP服务命令定义用户请求的文件传输或文件系统功能。此命令的参数通常是路径名,其语法要和服务器的规范一致。推荐的默认值是最近指定

的设备目录或目录。命令顺序通常没有限制,只有"rename from"命令后面必须是"rename to",重新启动命令后面必须是中断服务命令。服务命

令的响应通常在数据连接上传输。下面是具体的命令:

获得文件(RETR)

此命令使服务器DTP传送指定路径内的文件复本到服务器或用户DTP。这边服务器上文件的状态和内容不受影响。

保存(STOR)

此命令使服务器DTP接收数据连接上传送过来的数据,并将数据保存在服务器的文件中。如果文件已存在,原文件将被覆盖。如果文件不存在,

则新建文件。

唯一保存(STOU)

此命令和STOR差不多,此命令要求在此目录下的文件名是唯一的,对此命令的响应必须包括产生的用户名。

附加(APPE)

它和STOR的功能差不多,但是如果文件在指定路径内已存在,则把数据附加到原文件尾部,如果不存在则新建文件。

分配(ALLO)

此命令用于在一些主机上为新传送的文件分配足够的存储空间。参数是十进制的逻辑字节数。如果是记录或页结构,页或记录的最大大小也需要

,这在第二个参数内以十进制指定。第二个参数是可选的,如果有它,它和第一个参数以Telnet字符 R 分隔。此命令在STOR或APPE命令后,对

于不需要分配存储空间的机器,它的作用等于NOOP。

重新开始(REST)

参数域代表服务器要重新开始的那一点,此命令并不传送文件,而是略过指定点后的数据,此命令后应该跟其它要求文件传输的FTP命令。

重命名(RNFR)

这个命令和我们在其它操作系统中使用的一样,只不过后面要跟"rename to"指定新的文件名。

重命名为(RNTO)

此命令和上面的命令共同完成对文件的重命名。

放弃(ABOR)

此命令通知服务中止以前的FTP命令和与之相关的数据传送。如果先前的操作已经完成,则没有动作,返回226。如果没有完成,返回426,然后

再返回226。关闭控制连接,数据连接不关闭。

删除(DELE)

此命令删除指定路径下的文件。用户进程负责对删除的提示。

删除目录(RMD)

此命令删除目录。

创建目录(MKD)

此命令在指定路径下创建新目录。

打印工作目录(PWD)

在响应是返回当前工作目录。

列表(LIST)

服务器传送列表到被动DTP,如果路径指定一个目录或许多文件,返回指定路径下的文件列表。如果路径名指定一个文件,服务器返回文件的当

前信息,参数为空表示用户当前的工作目录或默认目录。数据传输在ASCII或EBCDIC下进行,用户必须确认这一点。因为文件信息因系统不同而

不同,所以不可能被程序自动利用,但是人类用户却很需要。

名字列表(NLST)

服务器传送目录表名到用户,路径名应指定目录或其它系统指定的文件群描述子;空参数指当前目录。服务器返回文件名数据流,以ASCII或

EBCDIC形式传送,并以或分隔。这里返回的信息有时可以供程序进行进一步处理。

站点参数(SITE)

服务器用来提供服务器系统信息,信息因系统不同而不同,格式在HELP SITE命令应答中给出。

系统(SYST)

用于确定服务器上运行的操作系统。

状态(STAT)

此命令返回控制连接状态,它可以在文件传送过程中发送,服务器返回操作进行的状态。也可以在文件传送之间发送,这时命令有参数,参数是

路径名,此命令的功能除了数据在控制连接上传送以外和列表命令相似。如果指定部分路径,服务器以文件名或与说明相关的属性返回;如没有

参数,服务器返回服务器FTP进程的状态信息,包括传输参数的当前值和连接状态。

帮助(HELP)

这条命令我们在平常系统中得到的帮助没有什么区别,响应类型是211或214。建议在使用USER命令前使用此命令。

等待(NOOP)

此命令不产生什么实际动作,它仅使服务器返回OK。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值