FTP学习1_FTP命令字和响应码解释

FTP命令

 

命令  描述 
ABOR 中断数据连接程序
ACCT <account> 系统特权帐号
ALLO <bytes>  为服务器上的文件存储器分配字节
APPE <filename> 添加文件到服务器同名文件
CDUP <dir path> 改变服务器上的父目录
CWD <dir path> 改变服务器上的工作目录
DELE <filename> 删除服务器上的指定文件
HELP <command> 返回指定命令信息
LIST <name> 如果是文件名列出文件信息,如果是目录则列出文件列表
MODE <mode> 传输模式(S=流模式,B=块模式,C=压缩模式)
MKD <directory> 在服务器上建立指定目录
NLST <directory> 列出指定目录内容
NOOP 无动作,除了来自服务器上的承认
PASS <password> 系统登录密码
PASV 请求服务器等待数据连接
PORT <address> IP 地址和两字节的端口 ID
PWD 显示当前工作目录
QUIT 从 FTP 服务器上退出登录
REIN 重新初始化登录状态连接
REST <offset> 由特定偏移量重启文件传递
RETR <filename> 从服务器上找回(复制)文件
RMD <directory> 在服务器上删除指定目录
RNFR <old path> 对旧路径重命名
RNTO <new path> 对新路径重命名
SITE <params> 由服务器提供的站点特殊参数
SMNT <pathname> 挂载指定文件结构
STAT <directory> 在当前程序或目录上返回信息
STOR <filename> 储存(复制)文件到服务器上
STOU <filename> 储存文件到服务器名称上
STRU <type> 数据结构(F=文件,R=记录,P=页面)
SYST 返回服务器使用的操作系统
TYPE <data type> 数据类型(A=ASCII,E=EBCDIC,I=binary)
USER <username>> 系统登录的用户名

 

FTP响应码

 

响应代码  解释说明 
110 新文件指示器上的重启标记
120 服务器准备就绪的时间(分钟数)
125 打开数据连接,开始传输
150 打开连接
200 成功
202 命令没有执行
211 系统状态回复
212 目录状态回复
213 文件状态回复
214 帮助信息回复
215 系统类型回复
220 服务就绪
221 退出网络
225 打开数据连接
226 结束数据连接
227 进入被动模式(IP 地址、ID 端口)
230 登录因特网
250 文件行为完成
257 路径名建立
331 要求密码
332 要求帐号
350 文件行为暂停
421 服务关闭
425 无法打开数据连接
426 结束连接
450 文件不可用
451 遇到本地错误
452 磁盘空间不足
500 无效命令
501 错误参数
502 命令没有执行
503 错误指令序列
504 无效命令参数
530 未登录网络
532 存储文件需要帐号
550 文件不可用
551 不知道的页类型
552 超过存储分配
553 文件名不允许

转载:http://www.cnblogs.com/steven0lisa/archive/2011/11/02/2233160.html

FTP(File Transfer Protocol)协议是用于在客户端与服务器之间传输文件的一种标准协议。它使用客户端-服务器模型,并通过一组命令响应码来协调文件传输管理操作。以下是一些常见的 FTP 请求命令及其对应的响应码。 ### 1. 常见 FTP 请求命令 FTP 客户端向服务器发送的命令通常包括: #### 1.1 登录与身份验证 - **USER username**:发送用户名以登录服务器。 - **PASS password**:发送密码进行身份验证。 - **QUIT**:终止连接并退出登录。 #### 1.2 文件传输模式设置 - **ASCII** 或 **TYPE A**:设置传输模式为 ASCII,适用于文本文件。 - **BINARY** 或 **TYPE I**:设置传输模式为二进制,适用于非文本文件。 #### 1.3 目录操作 - **PWD**:显示当前工作目录。 - **CWD directory**:更改当前工作目录。 - **CDUP**:返回上一级目录。 - **MKD directory**:创建新目录。 - **RMD directory**:删除目录。 #### 1.4 文件列表与管理 - **LIST**:列出当前目录中的文件子目录。 - **NLST**:仅列出当前目录中的文件名。 - **RETR filename**:从服务器下载文件。 - **STOR filename**:上传文件到服务器。 - **DELE filename**:删除服务器上的文件。 - **RNFR oldname**:重命名文件时指定旧文件名。 - **RNTO newname**:指定新文件名。 #### 1.5 数据连接模式 - **PORT ip,port**:客户端告诉服务器使用主动模式,并指定数据连接的 IP 端口。 - **PASV**:请求服务器进入被动模式,客户端将主动连接到服务器提供的端口。 ### 2. FTP 响应码 FTP 服务器在接收到客户端的请求后,会返回一个三位数的响应码,表示操作的状态或结果。这些响应码分为以下几类: #### 2.1 成功响应码(2xx) - **220**:服务已准备好,等待用户登录。 - **230**:用户登录成功。 - **250**:请求的文件操作已完成。 - **226**:数据连接关闭,文件传输完成。 - **200**:命令执行成功。 #### 2.2 中间状态码(1xx) - **125**:数据连接已打开,可以开始传输。 - **150**:文件状态良好,即将打开数据连接。 #### 2.3 需要继续操作(3xx) - **331**:用户名正确,需要提供密码。 - **350**:请求的文件操作需要进一步确认。 #### 2.4 错误响应码(4xx/5xx) - **425**:无法打开数据连接。 - **426**:连接关闭,传输中止。 - **450**:文件不可用,可能因为权限问题。 - **452**:服务器无法写入文件。 - **500**:命令未被识别。 - **501**:参数语法错误。 - **530**:登录失败,用户名或密码错误。 - **550**:文件或目录不可用(权限不足或不存在)。 ### 3. 示例:FTP 登录流程 以下是一个完整的 FTP 登录流程示例(主动模式): ``` 客户端发送:USER anonymous 服务器响应:331 Please specify the password. [^1] 客户端发送:PASS anonymous@ 服务器响应:230 Login successful. [^1] 客户端发送:PWD 服务器响应:257 "/" is the current directory. [^1] 客户端发送:LIST 服务器响应:150 Here comes the directory listing. [^1] 服务器响应:226 Directory send OK. [^1] 客户端发送:QUIT 服务器响应:221 Goodbye. [^1] ``` ### 4. 代码示例:使用 Python 实现简单的 FTP 客户端 以下是一个使用 Python 的 `ftplib` 模块实现简单 FTP 客户端的示例: ```python from ftplib import FTP # 连接到 FTP 服务器 ftp = FTP('ftp.example.com') # 登录到服务器 ftp.login(user='anonymous', passwd='anonymous@') # 获取当前工作目录 print(ftp.pwd()) # 列出当前目录下的文件 ftp.retrlines('LIST') # 下载文件 with open('example.txt', 'wb') as f: ftp.retrbinary('RETR example.txt', f.write) # 上传文件 with open('upload.txt', 'rb') as f: ftp.storbinary('STOR upload.txt', f) # 关闭连接 ftp.quit() ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值