㈠ ftp问题。
1、 简介
在绝大多数的LINUX发行版本中都选用的是WashingtonUniversity FTP,它是一个着名的FTP服务器软件,一般简称为wu-ftp。它功能强大,能够很好地运行于众多的UNIX操作系统,例如:IBM AIX、FreeBSD、HP-UX、NeXTstep、Dynix、SunOS、Solaris等。所以Internet上的FTP服务器,一大半以上采用了它。wu-ftp拥有许多强大的功能,很适于吞吐量较大的FTP服务器的管理要求:
· 在用户下载文件的同时对文件做自动的压缩或解压缩操作;
· 对不同网络上的机器做不同的存取限制;
· 记录文件上载和下载时间;
· 显示传输时的相关信息,方便用户及时了解目前的传输动态;
· 设置最大连接数,提高了效率,有效地控制了负载。
2、 所需资源
2.2.1 所需包
RedHat6.2 服务器安装
2.2.2 所需配置文件
/etc/ftpusers
/etc/ftpaccess
/var/run/ftp.pids
/etc/ftpconversions
/var/log/xferlog
/etc/ftpgroups
/etc/ftphosts
2.2.3 相关命令
ftpd FTP服务器程序
ftpshut 用于关闭FTP服务器程序
ftpcount 显示目前在线人数
ftpwho 查看目前FTP服务器的连接情况
ckconfig 检查FTP服务器的设置是否正确
ftprestart 重新启动FTP服务
2.2.4 相关目录
/home/ftpd/bin 存放一些供FTP用户使用的可执行文件
/home/ftpd/etc 存放一些供FTP用户使用的配置文件
/home/ftpd/pub 存放供下载的信息
/home/ftpd/incoming 存放供上载信息的空间
3、 配置方案
/etc/ftpaccess
说明: ftp权限配置文件
源文件:
guestuser weboa# FTP用户class all real,guest,anonymous *class weboa guest *# 格式:class [类名] [real/guest/anonymous] [IP地址] 功能: 这个指令的功能设定FTP服务器上用户的类别。并可对客户端的IP 地址进行限制,允许某部分的IP地址或全部的IP地址访问。而在FTP 服务器上的用户基本上可以分为以下三类: real 在该FTP服务器有合法帐号的用户; guest 有记录的匿名用户; anonymous 权限最低的匿名用户 email [email protected] 5# 格式:loginfails [次数] 功能:设定当用户登录到FTP服务器时,允许用户输错密码的次数。 readme README* loginreadme README* cwd=*message /welcome.msg loginmessage .message cwd=*# 格式:message [文件名称] [指令] 功能:当用户执行所指定的指令时,系统将指定的文件内容显示出来。 compress yes all# 格式:compress [yes/no] [类别] 功能:设置哪一个类别的用户可以使用compress(压缩)功能。 tar yes all# 格式:tar [yes/no] [类别] 功能:设置哪一个类别的用户可以使用tar(归档)功能。 chmod no guest,anonymous# 格式:chmod [yes/no] [real/anonymous/guest] 功能:设置是否允许指定用户使用chmod命令更改文件权限。默认是允许。delete yes all# 格式:delete [yes/no] [real/anonymous/guest] 功能:设置是否允许指定用户使用delete命令删除文件。默认是允许。overwrite yes guest# 格式:overwrite [yes/no] [real/anonymous/guest] 功能:设置是否允许指定用户覆盖同名文件。默认是允许。rename yes guest# 格式:rename [yes/no] [real/anonymous/guest] 功能:设置是否允许指定用户使用rename命令来为文件改名。默认是允许。 log transfers anonymous,real inbound,outbound# 格式:log transfers [real/guest/anonymous] [inbound/outbound] 功能:设置哪些用户的上载(inbound)和下载(outbound)操作做日志。shutdown /etc/shutmsg# 格式:shutdown [文件名] 功能: FTP服务器关闭的时间可以设置在后面所指定的文件中,当设 置的时间一到,便无法登录FTP服务器了,要恢复的话只有将 这个文件删掉。而这个文件必 须由指令/bin/ftpshut来生成。 passwd-check rfc822 warn# 格式:passwd-check [none/trivial/rfc822] [enforce/warn] 功能:设定对匿名用户anonymous的密码使用方式。 none 表示不做密码验证,任何密码都可以登录; trival 表示只要输入的密码中含有字符"@"就可以登录; rfc822 表示密码一定要符合RFC822中所规定的E-Mail格式才 能登录; enfore 表示输入的密码不符合以上指定的格式就不让登录; warn 表示密码不符合规定时只出现警告信息,仍然能够登录。limit remote 32 Any /etc/ftpd/toomany.msg# 格式:limit [类别] [人数] [时间] [文件名] 功能:这个指令的功能为设置指定的时间内指定的类别允许连接的 指定人数上限。当达到上限的时候,显示指定文件的内容。upload /home/ftpd * noupload /home/ftpd /pub yes anonymous 0644 dirs# 格式:upload [根目录] [上载目录] [yes/no] [用户] [权限] [dirs/nodirs] 功能:对可以上载的目录进行更加详细的设置。 alias incoming /home/ftp/incoming# 格式:alias [目录别名] [目录名] 功能:给指定目录设置一个别名,在切换目录时就可以使用较短的目录别名。
/etc/ftpusers
说明:FTP用户黑名单,为了安全考虑,需要禁止以下用户使用FTP
源文件:
4、 小结
在众多的网络应用中,FTP(File Transfer porotocol)有着非常重要的地位。在Internet中一个十分重要的资源就是软件资源。而各种各样的软件资源大多数都是放在FTP服务器中的。可以说,FTP与WEB服务几乎占据了整个Internet应用的80%以上。
FTP服务可以根据服务对象的不同分为两类:一类是系统FTP服务器,它只允许系统上的合法用户使用;另一类是匿名FTP服务器,Anonymous FTP Server,它使用任何人都可以登录到FTP服务器上去获取文件。
如果你在安装LINUX系统的时候,在选择启动进程的时候选择?quot;ftpd"这一项的话,安装完LINUX系统后,它已经将一个默认的FTP服务器安装到系统中去了。我们已经可以利用它来实现系统FTP服务器的功能了。我们只需在此基础上根据我们的需要进行一些个性化设定就可以了。
㈡ 简述FTP的工作原理
FTP的工作原理:FTP 采用 Internet 标准文件传输协议 FTP 的用户界面, 向用户提供了一组用来管理计算机之间文件传输的应用程序。
开发任何基于 FTP 的客户端软件都必须遵循 FTP 的工作原理,FTP 的独特的优势同时也是与其它客户服务器程序最大的不同点就在于它在两台通信的主机之间使用了两条 TCP 连接,一条是数据连接,用于数据传送;
另一条是控制连接,用于传送控制信息(命令和响应),这种将命令和数据分开传送的思想大大提高了 FTP 的效率,而其它客户服务器应用程序只有一条 TCP 连接。
(2)ftprfc扩展阅读:
FTP 的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。它能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样。
但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间,会非常长;并且不时的必须执行一些冗长的登录进程。
FTP 在因特网网络上历史是最悠久的网络工具,从 1971 年由 A KBHUSHAN 提出第一个 FTP 的RFC(RFC114),FTP 凭借其独特的优势一直都是因特网中最重要、最广泛的服务之一。
㈢ 现在的云存储和ftp有什么区别都是文件传输协议啊!区别在于哪里
说白了就是云存储是把所有人的文件都放在一个ftp上,可以节省资源,统计数据等,相当于公共汽车,平常的FTP只保存你少数人的资源,相当于私家车
如下为网络
云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。 当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中就需要配置大量的存储设备,那么云计算系统就转变成为一个云存储系统,所以云存储是一个以数据存储和管理为核心的云计算系统。
㈣ FTP可以有多个TCP连接用于多个并行文件传输
尽管理论上可以让FTP服务器支持多个并发传输,但它不受 RFC 或任何已知的实现。
该块很简单,控制连接在接收到传输请求后,在数据传输完成之前不会返回最终状态或接受新命令。因此,尽管您可以排队另一个传输请求,但实际上服务器不会处理它,直到当前的传输请求完成。
如果您想要多个文件传输,只需记录日志进入FTP服务器多次使用不同的程序或命令行窗口,并且每个都启动一次传输。
㈤ 如何异步读取FTP
一:开发背景
由于需要对多个服务器发布大的数据包,所以自己在LINUX用C语言,开发了一个传送器工具。因为上传时需要支持断点续传,所以自己参考ftp-rfc959和一些文章开发了这个支持断点续传的上传工具。整个工具分两部分开发的:一是支持断点续传的Ftp工具,包含下载和上传功能。二是同时对多个服务器发布不同数据包的传送器工具。本文只是对断点续传的商船和下载作探讨。
二:实现
其实Ftp上传下载的实现很简单,首先Ftp服务器端要支持文件的定位,
然后就是通过建立的Socket用Ftp服务器命令和服务器交互.
有些也可以通过Socket做自己的客户端和服务器端,但是有些服务器是自己能管理控制的,而且原来自己也写过一些这样C/S模式的工具,简单消息的传送接收还不错。
但用来传输文件效率很低,比文件传送协议FTP(File Transfer Protocol)差的太多。 利用Ftp的服务端可以省去服务器端的开发,而且可以向任何开放Ftp服务的服务器上传送文件,可以不考虑对方安装的
是什么的操作系统。
三:FTP
文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 可靠的运输服务。FTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。
FTP 使用客户服务器方式。
一个 FTP 服务器进程可同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。
A、通常的方式:
控制连接在整个会话期间一直保持打开,FTP 客户所发出的传送请求通过控制连接发送给控制进程,但控制连接并不用来传送文件,实际用于传输文件的是“数据连接”。
控制进程在接收到 FTP 客户发送来的文件传输请求后就创建一个“数据传送进程”和一个“数据连接”,并将数据连接连接到“数据传送进程”,数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行
当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口(21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。接着,服务器进程用自己传送数据的熟知端口(20)与客户进程所提供的端口号码建立数据传送连接。
B、 被动模式:
FTP客户端发出的连接请求,一般通过服务器的21号端口建立控制连接,专门用来传输一些字符串命令和响应信息。控制命令通道一定是由客户端向服务器的连接(默认的端口是21,也可以指定端口,这要看服务器的设置)。
PASV:通过控制通道通过发送PASV 服务器命令到 FTP服务器。请求建立被动模式数据连接通道。 (客户端的命令 passive)
服务器返回连接的信息(227 Entering Passive Mode (70,0,10,62,120,18) )地址和端口。端口=最后第二位乘256再加上最后一位(120*256+18)。(注意端口设为0的情况) 如: *f_port = atoi(port_1) * 256 + atoi(port_2);
服务器端和客户端身份转换,原客户端在本地建立监听,监听来自原服务器远端的连接请求建立数据连接通道。
四、 实现方法:
A、下载:
1、向服务器发送“REST + 本地文件长度”,告诉服务器,客户端要断点下载了。这时服务器还不知道客户端要下载的文件名;
2、向服务器发送"RETR + 文件名",通知服务器要下载的文件名,这时服务器开始定位文件指针读文件并发送数据。
3、客户端定位本地文件指针偏移到文件末尾;
4、两端的准备工作都做完了以后,客户端创建socket,以被动或非被动方式建立数据链接,循环调用recv接收文件数据并追加到本地文件末尾;
B、上传:
1、获取服务器上和本地要上传文件的同名文件大小;
2、向服务器发送“APPE + 文件名”,通知服务器,从数据通道发送给你的数据要附加到这个文件末尾。
3、定位本地文件指针,文件指针偏移到指定位置,这个位置与FTP服务器上文件大小相同的位置。
4、从文件指针处读数据并发送。
C、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>> 系统登录的用户名
D、服务器返回的部分数字代码含义
125 Data connection already open; Transfer starting.
226 Transfer complete.
227 Entering Passive Mode (127,0,0,1,4,18).
230 User xxxxx logged in.
331 Password required for xxxxx.
425 Can’t open data connection.
226 Closing data connection.
200 return a state of TYPE or MODE commond
220 connection state
五、关于Socket
关于Socket编程有很多参考资料,这里不作详细说明
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口
Socket 是一个基本的通信机制Socket把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议.
Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。
常用的Socket类型有两种:
A、流式Socket(SOCK_STREAM):流式是一种面向连接的Socket,针对于面向连接的TCP服务应用。
B、数据报式Socket(SOCK_DGRAM):数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。
Socket的程序是一种C/S结构,分客户端和服务器端。
A、客户端
– 初始化Socket
– 连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了
– 客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端
– 客户端读取数据,最后关闭连接,一次交互结束。
B、服务器端
- 初始化Socket
- 端口绑定(bind)
- 监听(listen)端口
- 调用accept阻塞,等待客户端连接
在这里我们使用的就是面向连接的流式Socket,只编写客户端的程序。
六、代码:
下面仅提供一个编译过并在使用中的函数简单的说明其实现原理,
需要有一点C语言和Linux/UNIX的socket编程基础即可理解。
只是建立连接和传输部分的一个函数。当文件传出结束或断开时,
可以调用检查函数看是否成功,字节是否正常等,如果不正常结束,
可以再次循环调用它并定为服务器文件的字节,继续传输。
其他的控制和功能都在其他函数中实现。为移植方便使用标准C语法符合C89标准。
code:
/*****************************************************************
* FileName: uftt_ver5.c *
* Company: algorithmics china lib Co.,Ltd. *
* Author: G.L.Zhang --- zglcl008 *
* Time: [2006-12-20] *
* Description: uninterrupted file transfers tools *
*****************************************************************/
int f_file_trans(const char *ft_addr, int ft_port, const char *ft_usr,const char *ft_pwd, const char *ft_opt, const char *ft_src, char *ft_obj, int ft_flg)
{
int cmd_sock = -1;
int dat_sock = -1;
int stream_sock= -1;
int dat_port = 0;
char dat_buffer[1024*5];
struct sockaddr_in f_server;
struct sockaddr_in f_datasvr;
unsigned char *pasv_ip = NULL;
unsigned char *pasv_port = NULL;
unsigned int len_addr = 0;
long rc_size = 0;
/* long svr_file_size = 0; */
long file_size = 0;
int rc = 0;
if (ft_addr == NULL || ft_usr == NULLft_pwd == NULL ||
ft_opt == NULL || ft_src == NULL || ft_obj == NULL ||
ft_port == 0 || ft_flg < 0) {
err_quit("--- file transfers parameter error");
}
/* get ftp commomd socket */
if ((cmd_sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
perror("cmmond socket");
err_quit("--- command sock error");
}
bzero(&f_server, sizeof(f_server));
f_server.sin_family = AF_INET;
f_server.sin_port = htons(ft_port);
f_server.sin_addr.s_addr = inet_addr(ft_addr);
if (connect(cmd_sock, (struct sockaddr *)&f_server, sizeof(f_server)) < 0) {
perror("connect");
err_quit("--- command sock error");
}
rc = uftt_cmd(dat_buffer, cmd_sock, NULL);
if (rc == 220)
printf("-1- %d OK\n", rc);
else
printf("-1- %d ERR\n", rc);
rc = uftt_cmd(dat_buffer, cmd_sock,"USER %s",ft_usr);
if (rc == 331)
printf("-2- %d OK\n", rc);
else
printf("-3- %d ERR\n", rc);
rc = uftt_cmd(dat_buffer, cmd_sock,"PASS %s",ft_pwd);
if (rc == 230)
printf("-3- %d OK\n", rc);
else
printf("-3- %d ERR\n", rc);
rc = uftt_cmd(dat_buffer, cmd_sock, "TYPE I");
if (rc == 200)
printf("-41- %d OK\n", rc);
else
printf("-41- %d ERR\n", rc);
rc = uftt_cmd(dat_buffer, cmd_sock, "MODE S");
if (rc == 200)
printf("-42- %d OK\n", rc);
else
printf("-42- %d ERR\n", rc);
memset(dat_buffer, ''\0'', sizeof(dat_buffer));
rc = uftt_cmd(dat_buffer, cmd_sock, "PASV");
if (rc == 227)
printf("-5- %d OK\n", rc);
else
printf("-5- %d ERR\n", rc);
#ifdef ZGL_DEBUG
printf("-5- %d %s\n", rc, dat_buffer);
#endif
/* get passive port */
dat_port = 0;
if ((rc = get_svr_port(dat_buffer, (int *)&dat_port)) < 0)
err_quit("data stream port error");
#ifdef ZGL_DEBUG
printf("--- pasive port=[%d]\n", dat_port);
#endif
if ((dat_sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
perror("data socket");
err_quit("--- data sock error");
}
len_addr = sizeof(f_datasvr);
bzero(&f_datasvr, sizeof(f_datasvr));
rc = getsockname(cmd_sock, (struct sockaddr *)&f_datasvr, (unsigned int *)&len_addr);
f_datasvr.sin_port = htons(dat_port);
/* 0=all port or appoint port TEST OK ***
f_datasvr.sin_port = htons(dat_port);
f_datasvr.sin_port = 0;
*/
if (bind(dat_sock,(struct sockaddr *)&f_datasvr,len_addr) == -1)
err_sys("--- data sock bind error");
if (listen(dat_sock,1) == -1)
err_sys("--- data sock bind error");
rc = getsockname(dat_sock, (struct sockaddr *)&f_datasvr, (unsigned int *)&len_addr);
pasv_ip = (unsigned char *)&f_datasvr.sin_addr;
pasv_port = (unsigned char *)&f_datasvr.sin_port;
rc = uftt_cmd(dat_buffer, cmd_sock,"PORT %d,%d,%d,%d,%d,%d",pasv_ip[0],
pasv_ip[1], pasv_ip[2], pasv_ip[3], pasv_port[0], pasv_port[1]);
if (rc == 200)
printf("-6- %d OK\n", rc);
else
printf("-6- %d ERR\n", rc);
/* get RETR put STOR append APPE */
if (ft_flg == 0) {
rc = uftt_cmd(dat_buffer, cmd_sock, "STOR %s", ft_obj);
}
else if (ft_flg > 0){
rc = uftt_cmd(dat_buffer, cmd_sock, "APPE %s", ft_obj);
}
if (rc == 150)
printf("-7- %d OK\n", rc);
else
printf("-7- %d ERR\n", rc);
stream_sock = accept(dat_sock, (struct sockaddr *)&f_datasvr, (unsigned int *)&len_addr);
if (stream_sock < 0)
err_sys("--- stream socket error");
rc_size = f_put_file(stream_sock, ft_src, ft_obj, ft_flg, file_size);
/* do without ***
rc = uftt_cmd(dat_buffer, dat_sock,"QUIT");
printf("-8- %d \n", rc);
*/
close(stream_sock);
close(dat_sock);
rc = uftt_cmd(dat_buffer, cmd_sock,"QUIT");
if (rc == 226)
printf("-9- %d OK\n", rc);
else
printf("-9- %d ERR\n", rc);
close(cmd_sock);
return rc_size ;
}
㈥ ftp与fxp有什么区别
什么是FXP(文件交换协议)
FXP最早是指客户端控制从一个FTP服务器把文件传到另一个FTP服务器。FXP方式能大大提高大容量文件的传输速度。利用了发送服务器和接受服务器之间的带宽,当然比从FTP服务器下载文件到你的电脑再上传到另一个FTP服务器快多了。
FTP(File Transfer Protocal),是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。
㈦ 怎样在winCE里用socket通信给FTP上传文件
现ftp主要三种用途:
、用作网站空间存放网站程序
二、用作论坛或其类型网站远程附件盘
三、公司(集体)或需要
文件传输协议(FTP)RFC 959定义于198510月发布文件传输协议(FTP)设计跨平台、简单且易于实现协议文件传输协议(FTP)漫演化史互联网重要应用至今却已江河本文作者各面列举些文件传输协议(FTP)诟病缺点
FTP文件传输协议必消亡五理由
1.数据传输模式合理
考虑文件自身内容味使用ASCII模式传输数据合理文件传输协议(FTP)应该具自检测功能用户进行自定义
虽现许LinuxWindows客户端已经支持自传输模式达数代UNIXWindows客户端都默认使用ASCII传输模式种传输模式甚至造文件损坏
2.工作式设计合理
文件传输协议(FTP)主模式(PORT)或模式(PASV)工作决定数据链接建立式
主模式客户端首先向服务器端发送IP址端口号等待服务器端建立TCP链接模式客户端同首先建立服务器链接服务器端启端口(10245000间)等待客户端传输数据
文件传输协议(FTP)让思议客户端侦听服务器端
3.与防火墙工作协调
文件传输协议(FTP)诞网络址转换(NAT)防火墙前网络存恶意攻击今数终用户IPv4址已路由防火墙使用IPv4址短缺
FTP意味着呢意味着FTP客户端IP址路由或者位于防火墙能使用传输模式进行数据传输
服务器端IP址路由或者位于防火墙呢FTP进行数据传输
现许防火墙适用于NAT环境使用些特殊技巧(hacks)允许FTP防火墙工作需要防火墙进行配置
4.密码安全策略完善
互联网早期文件传输协议(FTP)并没密码安全作规定FTP客户端服务器端数据明文形式传输任何通讯路径路由具控制能力都通嗅探获取密码数据
我使用SSL封装FTPFTP通建立链接进行数据传输我即便保护密码安全难保护数据传输安全性
自文件传输协议(FTP)发布安全数据传输经历足发展推荐使用SCP取代FTP进行文件传输
5.FTP协议效率低
FTP服务器检索文件包含繁复交换握手步骤:
客户端建立FTP服务器端控制端口TCP Socket链接并等待TCP握手完
客户端等待服务器端发送执
客户端向服务器端发送用户名并等待响应
客户端向服务器端发送密码并等待响应
客户端向服务器端发送SYST命令并等待响应
客户端向服务器端发送TYPE I命令并等待响应
用户需要服务器端切换目录客户端仍发送命令并等待响应
主模式客户端需要发送PORT命令服务器端等待响应(模式与主模式相反)
建立数据传输链接(需要经三握手建立条TCP Socket连接)
通链接传输数据
客户端等待服务器端控制连接发送2xx指令确保数据传输功
客户端发送QUIT命令并等待服务器响应
同情形我看看HTTP协议:
HTTP客户端向HTTP服务器端建立条TCP Socket连接
HTTP客户端向HTTP服务器端发送GET命令包含URL、HTTP协议版本、虚拟主机名等等并等待响应
HTTP服务器端响应包含所想要数据完
传输文件FTP需要往复10HTTP需要2传输文件FTP省略发送用户名密码步骤HTTP则使用固定套接字(Socket)相同TCP连接传输文件
综所述虽文件传输协议(FTP)曾经显赫现已经既安全友且效率低协议势必取代
㈧ Http、URL、FTP分别表示什么
http是一个协议
HTTP 协议定义服务器端和客户端之间文件传输的沟通方式。目前HTTP协议的版本是Http1.1。RFC 2616描述了HTTP协议的具体信息。
这个协议已经成为浏览器和Web站点之间的标准。
当我上网的时候底层是如何进行交互的?
当访问者点击一个超链接的时候,将会给浏览器提交一个URL地址。通过这个URL地址,浏览器便知道去链接那个网站并去取得具体的页面文件(也可能是一张图片,一个pdf文件)。
HTTP工作的基础就是,连接一个服务器并开始传输文件到浏览器。
HTTP传输的基本过程
在http传输的过程中,被称为客户端的请求者向服务器请求一个文件。
最基本的过程是:
1 客户端连接一个主机;
2 服务器接收连接,
3 客户端请求一个文件,
4 服务器发送一个应答.
URL是英文“Uniform Resource Locators”的缩写,意思是“统一资源定位器”。它不仅可用来定位网络上信息资源的地址,也可用来定位本地系统要访问的文件。
URL可分为两种类型,一种是绝对URL,另一种是相对URL。
绝对URL就是指明需要访问的信息或资源的绝对位置。绝对URL的基本语法格式为:accessmethod:‖servername[:port]/directory/name。其中,accessmethod是指定资源服务器的服务方式,称为“使用协议”。在WWW系统中,最常用的就是“http”协议。servername,指服务器域名,接入到Internet中每个可供访问的服务器,都有一个专用的域名,用户要访问服务器上的资源,必须指明服务器的域名。“[:port]”是指明进入一个服务器的端口号,它是用数字来表示的,一般可缺省。“directory”是指明文件所在服务器的目录或路径。“name”是文件名,在缺省的情况下,首先会调出称为“主页”的文件。
相对URL就是定位需要访问资源的相对路径。所谓“相对路径”,就是所需资源相对于当前位置的路径。例如,当我们已处于服务器中的一个路径时,如果该路径中有多个文件需要访问,那么我们仅需指明文件名就可以了。
FTP是英语FILE TRANSFER PROTOCOL的简称,中文意为"文件传送协议,用于在电脑和电脑之间传送文件,有了这个协议,文件的传输就可以不受不同的电脑,不同的操作系统,甚至不同文件格式的限制,传输文件的一般步骤如下:
1在本地电脑上登陆到国际互联网,
2搜索有文件共享主机或者个人电脑(一般有专门的FTP服务器网站上公布的,上面有进入该主机或个人电脑的名称,口令和路径)
3当与远程主机或者对方的个人电脑建立连接后,用对方提供的用户名和口令登陆到该主机或对方的个人电脑.
4在远程主机或对方的个人电脑登陆成功后,就可以上传你想跟别人分享的东东或者下载别人授权共享的东东(这里的东东是指能放到电脑里去又能在显示屏上看到的东东)
5完成工作后关闭FTP下载软件,切断连接.
为了实现文件传输,用户还要运行专门的文件传输程序,比如网际快车就有这方面的功能,其它还有很多专门的FTP传输软件,各有各的特色
㈨ http,ftp分别是什么意思
HTTP,即超文本传输协议,是 HyperText Transfer Protocol的缩写。
FTP(文件传输) FTP就是文件传输协议,通过FTP,用户可以从Internet网上的一台机器向另一台机器复制文件,可以用这种方式获取大量的文档,数据和其他的信息。