📄 文件传输协议.htm
字号:
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>331</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P align=justify>用户名正确,需要口令</FONT></P></BLOCKQUOTE></TD></TR>
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>332</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P align=justify>登录时需要帐户信息</FONT></P></BLOCKQUOTE></TD></TR>
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>350</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P align=justify>请求的文件操作需要进一步命令</FONT></P></BLOCKQUOTE></TD></TR>
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>421</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P align=justify>不能提供服务,关闭控制连接</FONT></P></BLOCKQUOTE></TD></TR>
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>425</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P align=justify>不能打开数据连接</FONT></P></BLOCKQUOTE></TD></TR>
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>426</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P align=justify>关闭连接,中止传输</FONT></P></BLOCKQUOTE></TD></TR>
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>450</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P align=justify>请求的文件操作未执行</FONT></P></BLOCKQUOTE></TD></TR>
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>451</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P align=justify>中止请求的操作:有本地错误</FONT></P></BLOCKQUOTE></TD></TR>
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>452</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P align=justify>未执行请求的操作:系统存储空间不足</FONT></P></BLOCKQUOTE></TD></TR>
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>500</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P align=justify>格式错误,命令不可识别</FONT></P></BLOCKQUOTE></TD></TR>
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>501</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P align=justify>参数语法错误</FONT></P></BLOCKQUOTE></TD></TR>
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>502</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P align=justify>命令未实现</FONT></P></BLOCKQUOTE></TD></TR>
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>503</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P align=justify>命令顺序错误</FONT></P></BLOCKQUOTE></TD></TR>
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>504</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P align=justify>此参数下的命令功能未实现</FONT></P></BLOCKQUOTE></TD></TR>
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>530</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P align=justify>未登录</FONT></P></BLOCKQUOTE></TD></TR>
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>532</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P align=justify>存储文件需要帐户信息</FONT></P></BLOCKQUOTE></TD></TR>
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>550</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P align=justify>未执行请求的操作</FONT></P></BLOCKQUOTE></TD></TR>
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>551</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P align=justify>请求操作中止:页类型未知</FONT></P></BLOCKQUOTE></TD></TR>
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>552</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P align=justify>请求的文件操作中止,存储分配溢出</FONT></P></BLOCKQUOTE></TD></TR>
<TR>
<TD vAlign=top width="5%"><FONT face=宋体 size=3>
<P align=justify>553</FONT></P></TD>
<TD vAlign=top width="95%" colSpan=2>
<BLOCKQUOTE><FONT face=宋体 size=3>
<P
align=justify>未执行请求的操作:文件名不合法</FONT></P></BLOCKQUOTE></TD></TR></TBODY></TABLE><FONT
face=宋体 size=3>
<P align=justify>5. 说明</P>
<P align=justify>5.1. 最小实现</P>
<P align=justify>下面是FTP服务器的最小实现:</P>
<P align=justify>类型 - ASCII Non-print</P>
<P align=justify>模式 - Stream</P>
<P align=justify>结构 - File, Record</P>
<P align=justify>命令 - USER, QUIT, PORT,TYPE, MODE, STRU,RETR,
STOR,NOOP.</P>
<P align=justify>传输的默认参数为:</P>
<P align=justify>类型 - ASCII Non-print</P>
<P align=justify>模式 - Stream</P>
<P align=justify>结构 - File</P>
<P align=justify>所有主机都将上面的值作为默认值。</P>
<P align=justify>5.2. 连接</P>
<P
align=justify>服务器协议解释器会在端口L侦听,用户或用户协议解释器初始化全双工控制连接,服务器和用户进程应该遵守Telnet协议的说明进行。服务器不提供对命令行的编辑功能,应该由用户负责这一切。在全部传送和应答结束后,在用户的请求下服务器关闭控制连接。用户DTP必须在指定的数据端口上侦听,它可以是默认端口U或由PORT命令指定的端口。服务器的默认数据端口为L-1。传输方向和端口均可由FTP命令决定。只有用户PI可以改变默认端口。当数据在服务器A和B之间传送时,用户PI,C,在两个服务器PI之间建立控制连接。其中一个服务器A,在接收到传输服务命令时接收PASV命令初始化连接,用户PI接收到PASV命令的确认时(确认内包括主机标识和端口),将端口以PORT命令发送到B。在接收到确认后,用户PI可以发送相应的命令给A和B了,B初始连接和传输进程,命令应答序列如下面所示,请根据位置注意时差:</P>
<P align=center><IMG height=163 alt=连接过程 src="文件传输协议.files/FTP-7.gif"
width=453></P>
<P align=justify>在任何时间,服务器和用户只要有一方关闭连接,另一方就要赶快读取缓冲中的数据,然后也关闭本方的连接。</P>
<P align=justify>5.3. 命令</P>
<P
align=justify>本节主要讨论命令格式。命令对大小写不敏感。命令通常由命令码和相应的参数组成。中间由一个或几个空格分开。参数域由<CRLF>结束,服务器在未接收到行结束符时不会采取任何动作。下面描述的格式是以NVT-ASCII以准的,方括号代表可选的参数域,如果未选择可选的参数域则采用默认值。</P>
<P align=justify>5.3.1. FTP命令</P>
<P
align=justify>下面是FTP命令,其中username代表用户名,password代表口令,pathname代表路径名,host-port代表主机端口,account-information代表帐户信息,typecode代表类型代码,decimal-integer代表十进制整数,marker代表标记,string代表字符串:</P>
<P align=justify>USER <SP> <username> <CRLF></P>
<P align=justify>PASS <SP> <password> <CRLF></P>
<P align=justify>ACCT <SP> <account-information>
<CRLF></P>
<P align=justify>CWD <SP> <pathname> <CRLF></P>
<P align=justify>CDUP <CRLF></P>
<P align=justify>SMNT <SP> <pathname> <CRLF></P>
<P align=justify>QUIT <CRLF></P>
<P align=justify>REIN <CRLF></P>
<P align=justify>PORT <SP> <host-port> <CRLF></P>
<P align=justify>PASV <CRLF></P>
<P align=justify>TYPE <SP> <type-code> <CRLF></P>
<P align=justify>STRU <SP> <structure-code> <CRLF></P>
<P align=justify>MODE <SP> <mode-code> <CRLF></P>
<P align=justify>RETR <SP> <pathname> <CRLF></P>
<P align=justify>STOR <SP> <pathname> <CRLF></P>
<P align=justify>STOU <CRLF></P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -