`
rmzdb
  • 浏览: 81374 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

【原】apache ftpServer源码解读与收获(一)

阅读更多

一.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文档,这里不做赘述。

分享到:
评论

相关推荐

    apache ftpserver笔记

    Apache FTPServer是一款开源的FTP服务器软件,它是Apache MINA项目的一部分,用于构建高性能、可扩展的网络应用。这篇笔记主要围绕Apache FTPServer的使用、配置和相关开发进行讲解。 首先,Apache FTPServer提供了...

    Apache FtpServer配置详解

    从零开始介绍Apache FtpServer,并一步一步教你配置Apache FtpServer,更高级的应用,教你用写代码控制Apache FtpServer及集成到自己的应用中 <!--ftp端口 --> <!--绑定的服务器IP地址,多网卡的时候使用...

    apache FTPserver 安装包

    Apache FTPServer是一款开源的FTP服务器软件,它是Apache软件基金会的一部分,设计用于提供可靠且高效的文件传输服务。在本文中,我们将深入探讨如何安装和配置Apache FTPServer,以及它的一些核心特性。 首先,让...

    Apache Ftpserver 全套

    Apache Ftpserver是一款开源的FTP服务器软件,由Apache软件基金会维护。它提供了高度可配置性和模块化设计,使得用户可以根据需求定制自己的FTP服务环境。在本资料包中,你将获得Apache Ftpserver的全套资源,包括...

    Apache FTPServer的配置使用

    Apache FTPServer:Apache 软件基金会开发的一款 FTP 服务器,支持多种操作系统,功能强大、灵活。 FileZilla Server:一个免费的 FTP 服务器,支持多种操作系统,易于使用。 VSFTP:一个安全、稳定的 FTP 服务器...

    Apache FTPServer 1.1.0 + SpringMVC 2.5完美整合项目完整源码

    这是在eclipse上创建的项目,下载源码包导入即可。 在运行之前自己在MySQL上创建数据库,名如:ftpserver,再导入里面提供的...有了这套源码,不出十分钟你就可以搞懂怎么在你的Spring项目里面整合Apache FTPServer了。

    apache ftpserver讲解

    - **用户管理器**:设置为 `<userManager class="org.apache.ftpserver.usermanager.impl.DatabaseUserManager"/>` 以便于与数据库进行集成。 - **虚拟主机**:定义 `<virtualHost>` 元素来指定服务器的虚拟主机...

    apache ftpserver Mysql配置

    Apache FTPServer是一款开源的FTP服务器,它允许用户通过FTP协议上传和下载文件。与Mysql的结合配置,主要是为了实现用户认证、权限管理和日志记录等功能的数据库化,提高系统的可扩展性和安全性。以下是关于"apache...

    Apache_FtpServer配置详解

    Apache_FtpServer配置详解

    apache ftpserver使用讲解

    - `org\apache\ftpserver\usermanager\impl\AbstractUserManager.class` 修改这些类的主要目的是让其支持新的表结构,并实现在验证过程中对源IP地址的检查。 通过以上步骤,我们可以有效地配置并使用Apache FTP...

    apache ftp server

    Apache FTP Server是一个开源的FTP服务器,它允许用户通过FTP协议上传、下载文件。这个服务器是用Java语言编写的,因此可以在任何支持Java的平台上运行,包括Windows、Linux、Unix等操作系统。Apache FTP Server的...

    apache-ftpserver-1.1.1.zip

    Apache FTPServer是一款开源的FTP(File Transfer Protocol)服务器软件,主要负责在互联网上进行文件传输。这个特定的压缩包“apache-ftpserver-1.1.1.zip”包含了该服务器软件的v1.1.1版本,适用于Linux和Windows...

    Apache FtpServer详细配置.zip

    Apache FtpServer是一款开源的FTP服务器,它基于Java平台,为用户提供了一种灵活且可扩展的方式来搭建和管理FTP服务。Apache FtpServer以其强大的功能、良好的稳定性和丰富的配置选项深受IT专业人士的喜爱。以下是对...

    Apache Ftp Server使用说明

    1. 下载:首先,你需要从Apache官方网站(http://mina.apache.org/ftpserver/download.html)下载最新版本的Apache FtpServer。 2. 解压:下载后,将压缩包解压到任意目录。 3. 配置环境变量:为了方便运行,你可以...

    Apache FtpServer 1.0.6

    Apache FtpServer是一个100%纯Java的、基于现有开放式协议基础上、完整、小巧的FTP服务器。此外,FtpServer还可以作为Windows服务器、Unix / Linux后台程序或是被嵌入在Java应用程序而独立运行。有了MINA...

    (转)Java使用Apache FtpServer实现嵌入式FTP服务器

    Java使用Apache FtpServer实现嵌入式FTP服务器是一项常见的任务,尤其在开发集成测试或部署自动化流程时。Apache FtpServer是一个开源项目,它提供了一个轻量级且可嵌入的FTP服务器,允许开发者在Java应用程序中直接...

    apache ftpserver embeded 工程版

    apache ftpserver 源码嵌入eclipse工程版,所有配置已配好,myserver.java右键 run as java aplication 运行即可。登录名:admin 密码:admin 还有一个名字一样的资源,也是我上传的,那个账号找不回来了

    apache ftpserver

    Apache FTPServer是一个开源的FTP服务器项目,它提供了一个强大、灵活且可扩展的平台来管理文件传输服务。这个服务器是基于Java实现的,因此具备跨平台性,可以在多种操作系统上运行,包括Windows、Linux和Mac OS等...

    Apache FTPServer的配置与使用&API

    Apache FTPServer是一款开源的FTP服务器软件,它基于Java平台,提供了强大的可扩展性和高度的定制性。本篇文章将深入探讨Apache FTPServer的配置、使用以及API的详细操作,旨在帮助用户更好地理解和应用这款服务器。...

    Java 嵌入apache.ftpserver.FtpServer 实现FTP服务

    Java中的Apache FtpServer库为开发人员提供了一个强大的框架,用于在Java应用程序中轻松地创建和管理FTP服务器。Apache FtpServer提供了丰富的API,可以定制服务器的行为,满足各种需求。本篇文章将深入探讨如何利用...

Global site tag (gtag.js) - Google Analytics