📄 rfc959(china).txt
字号:
SYST <CRLF>STAT [<SP> <pathname>] <CRLF>HELP [<SP> <string>] <CRLF>NOOP <CRLF>5.3.2. FTP命令参数下面是用BNF范式表示的参数格式:<username> ::= <string><password> ::= <string><account-information> ::= <string><string> ::= <char> | <char><string><char> ::= 除<CR>和<LF>外的所有ASCII字符<marker> ::= <pr-string><pr-string> ::= <pr-char> | <pr-char><pr-string><pr-char> ::= 可打印ASCII字符,从33到126<byte-size> ::= <number><host-port> ::= <host-number>,<port-number><host-number> ::= <number>,<number>,<number>,<number><port-number> ::= <number>,<number><number> ::= 从1到255的十进制整数<form-code> ::= N | T | C<type-code> ::= A [<sp> <form-code>]| E [<sp> <form-code>]| I| L <sp> <byte-size><structure-code> ::= F | R | P<mode-code> ::= S | B | C<pathname> ::= <string><decimal-integer> ::= 任何十进制整数5.4. 命令和响应序列服务器和用户之间的通信是对话的过程,用户发送FTP命令,然后等待服务器的一个(或多个)响应,根据响应再发送新命令。连接时的响应带有许多信息,通常情况下,服务器会返回220应答,等待输入,用户在接收到此响应后才发送新命令,如果服务器不能立即接收输入,会在220后面返回120。有些信息如服务器将在15分钟后停止工作是要服务器发向用户的,但是服务器却不能直接发向用户,处理的方法是将消息缓冲,在下一个响应中返回给用户。下面列出命令的应答,第一个是预备应答,第二个是确定完成,第三个是拒绝完成,最后是中间应答。这些应答是构成状态图的基础,状态图会在下节中给出:建立连接120220220421登录USER230530500, 501, 421331, 332PASS230202530500, 501, 503, 421332ACCT230202530500, 501, 503, 421CWD250500, 501, 502, 421, 530, 550CDUP200500, 501, 502, 421, 530, 550SMNT202, 250500, 501, 502, 421, 530, 550退出登录REIN120220220421500, 502QUIT221500传输参数PORT200500, 501, 421, 530PASV227500, 501, 502, 421, 530MODE200500, 501, 504, 421, 530TYPE200500, 501, 504, 421, 530STRU200500, 501, 504, 421, 530文件操作命令ALLO200202500, 501, 504, 421, 530REST500, 501, 502, 421, 530350STOR125, 150(110)226, 250425, 426, 451, 551, 552532, 450, 452, 553500, 501, 421, 530STOU125, 150(110)226, 250425, 426, 451, 551, 552532, 450, 452, 553500, 501, 421, 530RETR125, 150(110)226, 250425, 426, 451450, 550500, 501, 421, 530LIST125, 150226, 250425, 426, 451450500, 501, 502, 421, 530NLST125, 150226, 250425, 426, 451450500, 501, 502, 421, 530APPE125, 150(110)226, 250425, 426, 451, 551, 552532, 450, 550, 452, 553500, 501, 502, 421, 530RNFR450, 550500, 501, 502, 421, 530350RNTO250532, 553500, 501, 502, 503, 421, 530DELE250450, 550500, 501, 502, 421, 530RMD250500, 501, 502, 421, 530, 550MKD257500, 501, 502, 421, 530, 550PWD257500, 501, 502, 421, 550ABOR225, 226500, 501, 502, 421获得信息命令SYST215500, 501, 502, 421STAT211, 212, 213450500, 501, 502, 421, 530HELP211, 214500, 501, 502, 421其它命令SITE200202500, 501, 530NOOP200500 4216. 状态图下面是一个简单实现的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而下图可以包括的命令有:APPE,LIST,NLST,REIN,RETR,STOR和STOU。第一幅图和第二幅图差别不大,第一幅图中如果出现了100系列响应会是错误,而在第二幅图中不会。下面是重命名过程:下面是重新启动命令,其中cmd代表APPE,STOR或RETR。下图代表登录过程:7. 典型FTP过程假设位于U的用户希望从S上(下)传文件,通常用户需要使用用户FTP进程和服务器通信,下面就是一个例子:用户发出的本地命令解释ftp (host) multics<CR>连接到S的端口L,建立控制连接<---- 220 Service ready <CRLF>.用户名 Doe <CR>need password<CRLF>.USER Doe<CRLF>----><---- 331 用户名正确口令 <CR>PASS 口令<CRLF>----><---- 230 User logged in<CRLF>.retrieve (local type) ASCII<CR>(local pathname) test 1 <CR>(for. pathname) test.pl1<CR>User-FTP opens local file in ASCII.RETR test.pl1<CRLF> ----><---- 150 文件状态正常,将打开数据连接<CRLF>服务器于端口U建立数据连接文件传输中 <---- 226 关闭数据连接,文件传输正确<CRLF>type Image<CR>TYPE I<CRLF> ----><---- 200 Command OK<CRLF>store (local type) image<CR>(local pathname) file dump<CR>(for.pathname) >udd>cn>fd<CR>User-FTP opens local file in Image.STOR >udd>cn>fd<CRLF> ----><---- 550 访问拒绝<CRLF>中止QUIT <CRLF> ---->服务器关闭所有连接FTP控制连接通过用户进程端口U和服务器端口L建立,这里默认的L=21。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -