设为首页 收藏本站
查看: 666|回复: 0

[经验分享] apache ftpServer源码解读与收获(一)

[复制链接]

尚未签到

发表于 2015-11-13 14:12:18 | 显示全部楼层 |阅读模式
一.FTP相关知识
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动(积极)式和被动(消极)式。
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求, 服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT 命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的 XXXX端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV 命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。主动跟被动,关键在于是不是服务器建立了数据链路。如果是即主动(积极)模式,反之,则为被动(消极)模式。

FTP命令
命令划分

命令码

命令名称

备注

访问控制命令
USER
用户名
  PASS
口令
此命令紧跟USER命令,在某些站点它是完成访问控制不可缺少的一步
ACCT
ACCOUNT
  CWD
改变工作目录
  CDUP
回到上一层目录
  SMNT
结构加载
此命令使用户在不改变登录或帐户信息的情况下加载另一个文件系统数据结构。传输参数也不变。参数是文件目录或与系统相关的文件集合
REIN
重新初始化
  QUIT
退出登录
传输参数命令
PORT
数据端口
参数是要使用的数据连接端口
PASV
被动
此命令要求服务器DTP在指定的数据端口侦听,进入被动接收请求的状态,参数是主机和端口地址。


TYPE
表示类型
  STRU
文件结构
F - 文件(非记录结构),它是默认值

R - 记录结构

P - 页结构

MODE
传输模式
S - 流(默认值)

B -

C - 压缩


FTP服务命令
RETR
获得文件
使服务器DTP传送指定路径内的文件复本到服务器或用户DTP
STOR
保存
  STOU
唯一保存
此命令和STOR差不多,此命令要求在此目录下的文件名是唯一的
APPE
附加
  ALLO
分配
  REST
重新开始
  RNFR
重命名
  RNTO
重命名为
此命令和上面的命令共同完成对文件的重命名。


ABOR
放弃
  DELE
删除
  RMD
删除目录
  MKD
创建目录
  PWD
打印工作目录
  LIST
列表
如果路径指定一个目录或许多文件,返回指定路径下的文件列表。如果路径名指定一个文件,服务器返回文件的当前信息,参数为空表示用户当前的工作目录或默认目录
NLST
   SITE
站点参数
服务器用来提供服务器系统信息
SYST
系统
确定服务器上运行的操作系统。
STAT
状态
返回控制连接状态
HELP
帮助
  NOOP
等待
此命令不产生什么实际动作,它仅使服务器返回OK


有关FTP协议的详细,请阅读相关的RFC文档,这里不做赘述。
         版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-138847-1-1.html 上篇帖子: org.apache.commons.logging SimpleLog 下篇帖子: 整合apache和tomcat构建Web服务器-linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表