Chinaunix首页 | 论坛 | 博客
  • 博客访问: 482291
  • 博文数量: 35
  • 博客积分: 4010
  • 博客等级: 上校
  • 技术积分: 1234
  • 用 户 组: 普通用户
  • 注册时间: 2005-10-06 22:48
文章分类

全部博文(35)

文章存档

2008年(35)

我的朋友

分类: 系统运维

2008-07-30 17:14:45

从用户PI到服务器PI的传输通道是通过一个从用户到标准服务器端口的TCP连接建立的。用户PI负责发送FTP命令并解析接收到的响应;服务器 PI解析命令,发送响应以及控制DTP建立数据连接并传送数据。如果数据传输(被动传输过程)的另一端是用户DTP,则用户DTP由用户FTP主机的内部 协议控制;如果另一端是另一个服务器DTP,则这个服务器DTP由用户PI通过发送命令来控制。FTP的响应将在下一部分讨论。这部分描述的一些命令对理 解可能出现的响应会有帮助。

下面的命令表示访问控制标识符(括号中表示命令代码)

用户名 (USER)

这个命令的参数域是一个用来标识用户的Telnet字符串。用户识别对于服务器控制文件系统存取权限是必需的。这个命令通常是控制连接建立后从用户 端发送的第一条命令(一些服务器可能需要保证这一点)。一些服务器可能还需要附加的识别信息如密码或帐号命令。为了改变控制权限和/或帐户信息,服务器可 能在任何时候都允许接受一个新的USER命令,来更换存取权限或帐户信息。产生的效果是刷新早先登录的用户名、密码和帐户信息,并重新开始一个登录过程。 所有的传输参数不发生变化,并且所有正在传输中的文件传输过程均在原来的访问控制权限下完成。

密码 (PASS)

这个命令的参数域是一个用来指定用户密码的Telnet字符串。这个命令必须紧跟在用户名命令之后,在某些站点上,它用来完成用户访问权限识别。因 为密码信息非常敏感,一般应该使用掩码代替或者禁止回显。显然服务器没有安全的办法做到这一点,所以隐藏敏感的密码信息就成了用户FTP进程的责任。

帐户 (ACCT)

这个命令的参数域是一个用来识别用户帐户的Telnet字符串。这个命令不需要和USER命令相关,某些站点可能需要一个帐户用来登录,另一些站点仅用于特殊访问权限,比如存储文件。后一种情况下这个命令可能在任何时候收到。

有一些响应代码用来自动地区分这些情况:当登录过程必须要求帐户信息的时候,PASS命令成功的响应代码是332。相应,如果登录过程不要求帐户信 息时,PASS命令成功的响应代码是230;如果帐户信息需要在随后的对话命令中给出,服务器应该根据是保留(等侍收到ACCT命令)还是放弃命令来相应 的返回332或532。

改变工作目录 (CWD)

这个命令允许用户在不改变登录用户和帐户信息的情况下改变工作目录或数据集。传输参数保持不变。这个命令的参数是一个路径名,用来指定相应的目录或者其他系统上的文件组名。

返回上层目录 (CDUP)

这个命令是CWD命令的特例,因为在不同的操作系统下表达父目录可能有不同的语法,所以可以用这个命令简化目录树的传输实现。它的响应代码应该和CWD的响应代码相同。更多信息参看附录II。

结构装备 (SMNT)

这个命令允许用户在不改变用户和帐户信息的情况下装备一个不同的文件系统数据结构。传置传输参数不会改变。它的参数是一个用来标识目录或者其他系统中依赖文件组的路径名。

重新初始化 (REIN)

此命令除允许当前正在传输过程完成外,终止一个用户,刷新所有的I/O和帐户信息。所有参数重设为默认值,并保持控制连接。此时等同于控制连接刚刚建立的状态。这条命令之后可能需要USER命令。

注销 (QUIT)

此命令终止一个用户,并且当没有文件正在传输的话,服务器将关闭控制连接。如果当前有文件正在传输,连接会保持并等待回应,之后服务器将关闭连接。如果用户进程想以不同的用户名传输文件,而不想关闭然后再重建立连接的情况下,应该使用REIN命令而不是QUIT。

控制连接的意外关闭将会导致服务器产生等同于放弃(ABOR)和注销(QUIT)动作。

所有的数据传输参数都有默认值,只有在默认值需要改变的时候才需要用命令去指定传送数据传输参数。默认值是最后一次指定的值,或者如果未被指定,则 是标准默认值。这意味着服务器必须“记住”可用的默认值。这些命令可以在FTP服务请求前以任何顺序执行。下面这些命令用来指定数据传输参数:

数据端口(PORT)

这个参数是用来指定数据连接时的主机数据端口。对于用户和服务器都有默认的数据端口值,并且一般情况下这条命令以及它的响应都不需要。如果使用了这 条命令,那它的参数是一个32位的因特网主机地址和一个16位TCP端口号。地址信息被分解为每8位一个段,每个段都作为十进制数(用字符串表示)传送。 段之间用逗号分隔,一个PORT命令像下面这样:

PORT h1,h2,h3,h4,p1,p2

h1是因特网主机地址的高8位。

被动 (PASV)

此命令请求服务器DTP在一个数据端口(不是它的默认端口)上“监听”并等待连接而不是在收到传输命令后主动发起连接。这个命令的响应包括服务器监听的地址和端口号。

表示类型(TYPE)

这个命令的参数指定在数据表示和存储部分介绍的表示类型。某些类型需要第二个参数。第一个参数用单个Telnet字符表示,对于ASCII和 EBCDIC的第二个格式化参数也是如此;本地字节的第二个参数是一个表示字节长度的十进制整数。参数之间用(空格,ASCII码的 32)分开。

下面的编码用来表示类型:

\    /
A - ASCII | | N - 非打印
|-><-| T - Telnet格式
E - EBCDIC| | C - Carriage Control (ASA)
/ \
I - 图像

L <字节长度> - 本地字节长度

默认的表示类型是ASCII非打印。如果格式化参数首先被更改,然后单独更改第一个参数,格式化参数会变回默认的非打印。

文件结构(STRU)

这个命令的参数是单个Telnet字符,用来指定在数据表示和存储部分描述的文件结构。

下面编码用来表示文件结构:

F - 文件 (没有记录的结构)
R - 记录结构
P - 页结构

默认的结构是文件。

传输模式(MODE)

这个命令的参数是单个Telnet字符,用来指定在传输模式部分描述的数据传送传输模式。

下面的编码用来表示传送模式:

S - 流
B - 块
C - 压缩

默认的传送模式是流。

FTP服务命令定义了用户请求传送文件或者文件系统的功能。FTP服务命令的参数一般是一个路径。路径的语法必须符合服务器站点的惯例(尽量用默认 标准)和控制连接的语言习惯。建议的默认参数是使用最后一个设备,目录或文件名,或者本地用户的默认标准。除"rename from"命令后面必须紧跟"rename to"命令以及restart命令必须紧跟随中断服务命令(例如STOR或RETR)之外,其他命令可以使用任意的顺序。服务器应当总是使用数据连接来发 送服务命令响应,只有少数特定的信息响应除外。下面为FTP服务请求命令:

获得 (RETR)

这个命令引起服务器DTP传送一个由路径指定的文件拷贝到数据连接另一端的服务器或用户DTP。服务器文件的状态和内容应该不受影响。

保存 (STOR)

这个命令引起服务器DTP接受经过数据连接传送的数据并将这些数据存储为服务器端的一个文件。如果在路径参数里指定的文件在服务器端已经存在,那么这个文件会被传送过来的数据覆盖。如果指定的文件不存在则会在服务器端新建一个文件。

唯一保存 (STOU)

这个命令类似于STOR命令,但是它会在在当前目录下创建一个名字唯一的文件。在250号标准响应里必须包含创建出的文件名。

追加 (包括创建) (APPE)

这个命令引起服务DTP接受从数据连接传送过来的数据并存储在服务器端的一个文件里。如果指定的文件在服务器端已经存在,则这个数据会附加到文件的后面;否则服务器端会创建这个文件。

分配 (ALLO)

一些服务器可能要求用这个命令来保留足够的空间来容纳新文件。其参数是一个十进制整数,用来指定保留给文件存储用的字节数(用逻辑字节长度)。对于 用记录或者而结构传送的文件而言,还需要有最大结构或页的大小(使用逻辑字节),这个值在这个命令的第二个参数域用十进制整数指定。第二个参数是可选的, 但当它存在的时候应该用三个Telnet字符R和第一个参数分开。这个命令之后应该是STOR或者APPE命 令。在那些不需要预先知道文件最大值的服务器上,这个命令应该被作为NOOP(无操作)对待,在那些只对记录或页最大值感兴趣的服务器上应该忽略第一个参 数。

重新开始 (REST)

这个命令的参数域指定了需要重新开始传输的文件的位置标记。这个命令不会引起文件的传输,只是忽略文件中指定标记点前的数据。

重命名开始 (RNFR)

这个命令指定了需要重新命名的文件的原始路径名。后面必须马上接着“重命名为”命令,来指定新的文件路径

重命名为 (RNTO)

这个命令为在“重命名开始”命令中指定的文件指定新的路径。这两个命令一起为文件重新命名。

放弃(ABOR)

该命令告诉服务器放弃先前的FTP服务命令和相关的传输的数据。放弃命令也许需要引起服务器的“特别注意”(参见FTP命令部分),使服务器强制识别。当前一个命令(包括数据传输)完成时,将不会产生动作。服务器不会关闭控制连接,但是数据连接必须关闭。

服务器接收这个命令时可能处在两种状态:(1)FTP服务命令已经完成,或者(2)FTP服务命令还在执行中。

第一种情况,服务器关闭数据连接(如果数据连接是打开的)回应226代码,表示放弃命令已经成功处理。

第二种情况,服务器放弃正在进行的FTP服务,关闭数据连接,返回426响应代码,表示请求服务请求异常终止。然后服务器发送226响应代码,表示放弃命令成功处理。

删除 (DELE)

这个命令在服务器端删除指定的文件。如果需要额外的保护(比如讯问“你丫的真的想删除么?”),应该由用户FTP进程提供。

删除目录(RMD)

这个命令移除指定路径下的目录(如果是绝对路径),或者是当前工作目录的子目录(如果是相对路径)。参看附录II

新建目录(MKD)

该命令在指定的路径下新建一个目录(如果是绝对路径),或者在当前工作目录下建子目录(如果路径是相对的)。参看附录II

打印工作目录(PWD)

该命令返回一个当前的工作目录名。参看附录II

列表(LIST)

该命令从服务器端发送一个列表到被动的DTP。如果路径名指定了目录或者别的文件组,服务器应该传送指定目录下的文件列表。如果路径名指定了文件, 服务器应当传送这个文件的信息。没有参数,意味着用户的当前工作目录或者缺省目录。数据通过数据连接以ASCII或EBCDIC类型传输。(用户必须确定 类型是ASCII或者EBCDIC)。因为不同系统间的文件信息差别很大,这个信息可能不易被程序自动使用,但可能对于用户来说是有用处的。

名字列表 (NLST)

该命令从服务器端传送目录列表到用户端。路径名应该指定一个目录名或者其他系统文件组描述符;无参数意味着当前目录。服务器只返回文件的名字组成的 字节流,不包括其他的信息。数据将通过数据连接以ASCII或者EBCDIC类型传输,每个路径名字符串由分割。(用户仍必须保证类型使用正确)。这个命令的响应信息将可能被用于程序对文件的自动处理。例如,多线程下载的实现。

站点参数(SITE)

服务器使用这个命令,提供本系统可能对文件传输有帮助的特殊服务。在协议中它的用处不是很普遍。服务的种类和语法规约可以在HELP SITE命令的响应中确定。

系统(SYST)

该命令来得到服务器端操作系统的类型。响应的第一个词应该是Assigned Numbers文档[4]中表示操作系统名字的一个词。

状态 (STAT)

该命令应该通过控制连接以响应码的形式返回状态信息。此命令可能在文件传输过程中发出(与Telnet IP和同步信号一起,参见FTP命令道听部分),此时服务器将返回正在传输的状态。或者这个命令也可能在两个文件传输过程之间发出,这种情况下,命令可能 将有一个参数域。如果参数指定了一个路径名,则命令将与列表命令类似,只是数据由控制连接传输。如果给出了部分路径,服务器可能响应指定的路径下的文件名 列表或者相关属性。如果没有提供参数,将返回服务器FTP进程一般的状态信息,其中应该包括所有传传输参数的当前值和连接的状态。

帮助(HELP)

该命令使服务器通过控制连接传送关于具体实现状态的帮助信息给用户。该命令可以有参数(例如,命令的名字)返回更加具体的信息。回应代码是211或 者214。建议在输入USER命令前允许HELP。服务器可以用这个响应指定站点特定的参数,例如,在HELP SITE响应中指定。

空操作(NOOP)

该命令不应影响任何参数或者之前发送的命令。该命令不指定任何动作,只是要求服务器返回OK响应。

文件传输协议在控制连接上的所有通信都遵守Telnet协议。因为Telnet传输使用的语言可能是一个可协商的选项,下两部分提到的所有参考信息 将使用“Telnet语言”和相应的“Telnet行尾符”。当然可以将这些转换成NVT-ASCII和。没有其它的 Telnet协议规范被引用。

FTP命令是以"Telnet行末符"结尾的"Telnet字符串"。命令如果带有参数,那么命令代码本身是以(空格)结尾的 文字字符,或者当没有参数时以Telnet行末符结尾。命令代码和命令的语义在本章描述;详细的命令语法在命令一章描述,响应序列在命令和响应一章中描 述,命令用法的情景演示说明在典型FTP情景一章中给出。

FTP命令分为访问控制命令、数据传输参数命令、FTP服务请求命令三种。某些命令(例如,ABOR,STAT,QUIT)可以在数据传输过程中, 通过控制连接发送。一些服务器可能不能同时监控控制连接和数据连接,此时就要发出一些特殊的动作来引起服务器的注意。下面的指令格式是试验性建议:

1.用户系统在Telnet流中插入Telnet"中断过程"(Interrupt Process-IP)信号

2.用户系统发出Telnet “同步”(Synch)信号

3.用户系统在Telnet流中插入命令(例如,ABOR)

4.服务器PI,在接收到"IP"后,扫描telnet流,寻找FTP命令

(对于其它服务器,这些操作可能没有必要,但并不会引起意外的后果。)

文件传输协议命令的响应,用来确保在文件传输过程中的请求和正在执行的动作保持一致,保证用户程序总是可以得到服务器的状态信息。每一个命令必须产 生至少一个响应,也可能产生多个响应;多重的响应必须是可以简单区分的。另外,一些命令是有一定顺序的组合。比如USER、PASS和ACCT,或者 RNFR和RNTO。此时的响应表示一种中间状态,说明前面的命令是成功的。顺序组合中出现任何错误都会导致需要从头开始整个命令序列。

命令-响应序列的细节,将由下面一组状态图表明确表示。

FTP响应由3位数字组成(以3个数字字符传递)后面跟着一些文本。数字用来自动的判断当前的状态,文本内容提供给人类用户。三位数字应该包含足够 的信息,使用户PI不需要检查文本内容,而将其忽略或返回给用户。文本内容可能是与特定服务器相关的,所以每一个响应的文本内容很可能不同。

响应包含的3位数字,后面跟着空格,然后是一行文本(已指定一行最大的长度),以Telnet行末符结尾。有可能出现文本长度 大于一行的情况。在这种情况下,文本全文必须在两端加以标识,使用户进程知道什么时候应该停止读取响应(也就是,停止从控制连接读取输入),去做别的事 情。这要求第一行文本需要一种特殊的格式,来标识传来的文本内容有多行,并在文本最后一行指明这是最后。必需要包含适当的响应代码,以指明当前文本的状 态。为了满足这些功能,第一行和最后一行的代码应该是一样的。

因此,多行回应的格式是:第一行以正常的响应代码开始,后接连字符“-”(也就是那个减号)后面跟着文本。最后一行需要以相同的代码开始,后面跟空格分隔的可选文本,然后是Telnet行末符

例如:
123-第一行
第二行
234 以数字开始的一行
123 最后一行

用户进程只需要简单地寻找一行开始时后面跟随(空格)的相同响应代码,并忽略掉中间的文本。如果中间文本的某一行首出现了3位数字,服务器必须在前面填充,以避免混淆。

添加“人工的”第一行和最后一行标志的这种方案,允许使用标准系统例行程序产生响应信息(例如,产生STAT响应)。少数情况下,如果例行程序必须在某一行行首生成3位数字后跟空格,文本的每一行行首应该填充一些空文本,例如空格。

这个方案假定多行的响应不能被嵌套。

3位数字的每一位都有特定的意义。允许用户进程将复杂的响应简化。第一位数字标识了响应是好,坏或者未完成。(参见状态图),简单的用户进程可以通 过检查第一位数字,决定它的下一个动作(依计划处理,重试,放弃等等)。用户进程如果希望知道大概是发生了什么错误(比如,文件系统错误,语法错误),可 以通过检查第二位数字来完成。第三位数字指示信息顺序是否有误(例如,RNTO前没有RNFR命令)。

响应的第一位数字可能有以下五个值:

1yz,预备状态

请求的动作已经启动;在下一个新命令之前,期望一个回应。(用户进程在接收到完成响应前就发送另一条命令是违返协议的。但服务器FTP进程在处理前 面命令的过程中应该将后续收到的命令存入队列。)这种类型的响应用来表明命令已被接受,对于不能同时监视数据和控制连接的用户进程来说,它可能要开始关注 数据的连接了。服务器FTP进程最多每个命令发送一个1yz代码。

2yz,完成状态

请求动作被成功的完成。一个新的请求可以开始。

3yz,中间状态

命令被接受,但是请求动作暂时没有被执行,等侍收到进一步的信息。用户应该发送另一个命令来指定这个信息。这个回应用在命令组合中。

4yz,暂时拒绝状态

命令没有被接受,请求动作没有发生,但是这个错误状态是暂时的,动作可以被再次请求。用户应该重新回到命令队列的开始。说明“暂时”的具体意思是很 困难的,尤其在两个截然不同的站点(服务器和用户进程)间要达成解释的一致更是不易。每个4yz号响应可能都有一个稍不同的时间值,但总体思想都是鼓励用 户进程再一次重试。判断一个响应应该属于4yz号还是5yz号的一个规则是看这个命令是否可以不加修改并在相同的用户、服务器状态下(比如,命令使用同样 的拼写使用同样的参数;用户不改变文件访问权限;服务器不产生新的实现。)再次重复。

5yz,永久拒绝状态

命令不被接受,请求动作不会发生。用户进程不能重复同样的请求(包括同样的命令顺序)。一些“永久的”错误状态可以被修正,因此人类用户也许希望控制用户进程在将来的某点上重新开始命令队列。(比如在拼写改变之后,或目录状态改变之后。)

下面为第二位数字的功能:

x0z 语法 - 这种响应指出了语法错误。给出的命令不存在、没有被实现、或多余。

x1z 信息 - 对于请求信息的响应,比如对状态或帮助的请求。

x2z 连接 - 关于控制连接和数据连接的响应。

x3z 身份验证和帐户 - 对登陆过程和帐户处理的响应。

x5z 目前还未使用。

x5z 文件系统 - 请求传输时服务器文件系统的状态或其他文件系统动作状态。

第三位数字为第二位数字指定的状态提供了更详细的意义。下面的响应列表会说明这一点。注意,每一个响应的对应文本只是推荐的,而非强制性的,可依照 相应的命令而更改。另一方面,响应代码,必须严格的遵守最后部分的规范,也就是说,服务器实现不应该为与上面所描述的只有微小区别的状态发明新的代码,而 应该使用已经定义的代码。

类似TYPE或ALLO这样的成功执行也不会给用户进程新信息的命令将产生200号响应。如果命令因为与本计算机系统无关而不必被服务器FTP进程支持 的,例如ALLO在TOPS20站点上,应该回复一个完成状态的响应,来通知用户进程可以继续它的动作请求。202号响应用来处理这种情况,例如,响应文 本为“No storage allocation necessary”(无需分配存储)。另外,如果,如果请求了一个并没有被实现的命令,将返回502。504,表明实现了此命令,但是请求的参数并未被 实现。

200 Command okay. (命令OK)

500 Syntax error, command unrecognized. (语法错误,命令不能被识别)
可能包含因为命令行太长的错误。

501 Syntax error in parameters or arguments. (参数语法错误)

202 Command not implemented, superfluous at this site. (命令没有实现,对本站点冗余)

502 Command not implemented. (命令没有实现)

503 Bad sequence of commands. (命令顺序错误)

504 Command not implemented for that parameter. (没有实现这个命令参数)

110 Restart marker reply. (重新开始标记响应)
对于这种情况,文本应该是明确的,无需进行特殊实现;必须形如:
MARK yyyy = mmmm
yyyy是用户进程数据流标记,mmmm服务器的等效标记(注意,标记间的空格和“=“)

211 System status, or system help reply. (系统状态,或者系统帮助响应。)

212 Directory status. (目录状态)

213 File status. (文件状态)

214 Help message. (帮助信息)
关于如何如使用服务器,或者特殊的非标准的命令的意义。只对人类用户有用。

215 NAME system type. (系统类型名称)
这里的NAME指在Assigned Numbers文档中列出的正式名称。

120 Service ready in nnn minutes. (服务将在nnn分钟后准备完成)

220 Service ready for new user. (接受新用户服务准备完成)

221 Service closing control connection. (服务关闭控制连接)
已注消

421 Service not available, closing control connection. (服务不可用,关闭控制连接)
如果服务器知道它必须关闭,应该以421作为任何命令的响应代码。

125 Data connection already open; transfer starting. (数据连接已打开,传输开始)

225 Data connection open; no transfer in progress. (数据连接打开,没有传输)

425 Can't open data connection. (不能打开数据连接)

226 Closing data connection. (关闭数据连接)
请求文件动作成功(例如,文件传输或者放弃)

426 Connection closed; transfer aborted. (连接关闭,放弃传输)

227 Entering Passive Mode (h1,h2,h3,h4,p1,p2). (进入被动模式)

230 User logged in, proceed. (用户成功登录,继续)

530 Not logged in. (没有登录成功)

331 User name okay, need password. (用户名OK,需要密码)

332 Need account for login. (需要帐户才能登录)

532 Need account for storing files. (需要帐户来存储文件)

150 File status okay; about to open data connection. (文件状态OK,将打开数据连接)

250 Requested file action okay, completed. (请求文件动作OK,完成)

257 "PATHNAME" created. (创建了“PATHNAME”)

350 Requested file action pending further information. (请求文件动作需要进一步的信息)

450 Requested file action not taken. (请求文件动作没有执行)
文件不可使用(例如,文件忙)

550 Requested action not taken. (请求的动作没有执行)
文件不可用(例如,没有找到文件,没有访问权限)

451 Requested action aborted. Local error in processing. (请求动作放弃,处理中发生本地错误)

551 Requested action aborted. Page type unknown. (请求动作放弃,未知的页面类型)

452 Requested action not taken. (请求动作未执行)
系统存储空间不足。

552 Requested file action aborted. (请求文件动作被放弃)
超出存储分配空间(当前的路径或者数据集)

553 Requested action not taken. (请求动作未获得)
文件名不允许。

110 Restart marker reply. (重新开始标记响应)
对于这种情况,文本应该是明确的,无需进行特殊实现;必须形如:
MARK yyyy = mmmm
yyyy是用户进程数据流标记,mmmm服务器的等效标记(注意,标记间的空格和“=“)

120 Service ready in nnn minutes. (服务将在nnn分钟后准备完成)

125 Data connection already open; transfer starting. (数据连接已打开,传输开始)

150 File status okay; about to open data connection. (文件状态OK,将打开数据连接)

200 Command okay. (命令OK)

202 Command not implemented, superfluous at this site. (命令没有实现,对本站点冗余)

211 System status, or system help reply. (系统状态,或者系统帮助响应。)

212 Directory status. (目录状态)

213 File status. (文件状态)

214 Help message. (帮助信息)
关于如何如使用服务器,或者特殊的非标准的命令的意义。只对人类用户有用。

215 NAME system type. (系统类型名称)
这里的NAME指在Assigned Numbers文档中列出的正式名称。

220 Service ready for new user. (接受新用户服务准备完成)

221 Service closing control connection. (服务关闭控制连接)
已注消

225 Data connection open; no transfer in progress. (数据连接打开,没有传输)

226 Closing data connection. (关闭数据连接)
请求文件动作成功(例如,文件传输或者放弃)

227 Entering Passive Mode (h1,h2,h3,h4,p1,p2). (进入被动模式)

230 User logged in, proceed. (用户成功登录,继续)

250 Requested file action okay, completed. (请求文件动作OK,完成)

257 "PATHNAME" created. (创建了“PATHNAME”)

331 User name okay, need password. (用户名OK,需要密码)

332 Need account for login. (需要帐户才能登录)

350 Requested file action pending further information. (请求文件动作需要进一步的信息)

421 Service not available, closing control connection. (服务不可用,关闭控制连接)
如果服务器知道它必须关闭,应该以421作为任何命令的响应代码。

425 Can't open data connection. (不能打开数据连接)

426 Connection closed; transfer aborted. (连接关闭,放弃传输)

450 Requested file action not taken. (请求文件动作没有执行)
文件不可使用(例如,文件忙)

451 Requested action aborted. Local error in processing. (请求动作放弃,处理中发生本地错误)

452 Requested action not taken. (请求动作未执行)
系统存储空间不足。

550 Requested action not taken. (请求的动作没有执行)
文件不可用(例如,没有找到文件,没有访问权限)

501 Syntax error in parameters or arguments. (参数语法错误)

502 Command not implemented. (命令没有实现)

503 Bad sequence of commands. (命令顺序错误)

504 Command not implemented for that parameter. (没有实现这个命令参数)

530 Not logged in. (没有登录成功)

532 Need account for storing files. (需要帐户来存储文件)

550 Requested action not taken. (请求的动作没有执行)
文件不可用(例如,没有找到文件,没有访问权限)

551 Requested action aborted. Page type unknown. (请求动作放弃,未知的页面类型)

552 Requested file action aborted. (请求文件动作被放弃)
超出存储分配空间(当前的路径或者数据集)

553 Requested action not taken. (请求动作未获得)
文件名不允许。


阅读(1711) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~