客户端是如何上传数据到FTP服务器和从FTP服务器下载文件的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了客户端是如何上传数据到FTP服务器和从FTP服务器下载文件的?相关的知识,希望对你有一定的参考价值。

你们好,小弟这条问题不明白,希望会的指教一下,最好可以详细一点,谢谢你们了!

有专门的FTP软件的
客户端有flashfxp
服务端有Serv-U

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。FTP的任务是从一台计算机将文件传送到另一台计算机,不受操作系统的限制。
需要进行远程文件传输的计算机必须安装和运行ftp客户程序。在windows操作系统的安装过程中,通常都安装了tcp/ip协议软件,其中就包含了ftp客户程序。但是该程序是字符界面而不是图形界面,这就必须以命令提示符的方式进行操作,很不方便。
启动ftp客户程序工作的另一途径是使用ie浏览器,用户只需要在ie地址栏中输入如下格式的url地址:ftp://[用户名:口令@]ftp服务器域名:[端口号]
(在CMD命令行下也可以用上述方法连接,通过put命令和get命令达到上传和下载的目的,通过ls命令列出目录,除了上述方法外还可以在cmd下输入ftp回车,然后输入open IP来建立一个连接,此方法还适用于linux下连接ftp服务器)
通过ie浏览器启动ftp的方法尽管可以使用,但是速度较慢,还会将密码暴露在ie浏览器中而不安全。因此一般都安装并运行专门的ftp客户程序。
1.在本地电脑上登陆到国际互联网。
2.搜索有文件共享主机或者个人电脑(一般有专门的FTP服务器网站上公布的,上面有进入该主机或个人电脑的名称,口令和路径).
3.当与远程主机或者对方的个人电脑建立连接后,用对方提供的用户名和口令登陆到该主机或对方的个人电脑。
4.在远程主机或对方的个人电脑登陆成功后,就可以上传你想跟别人分享的东西或者下载别人授权共享的东西(这里的东西是指能放到电脑里去又能在显示屏上看到的东西).
5.完成工作后关闭FTP下载软件,切断连接。
参考技术A Client随机打开两个相邻端口,前一个端口与FTPServer的21端口相连(这是控制端口),然后Server会通告Client一个随机端口Z(用于传输数据),Client会使用第二个端口连接这个Z端口,到这时候连接就正式建立起来了,然后就使用get命令(下载)或者put命令(上传)来进行任务了此外还有很多命令来执行其它的功能,其实你上百科看看就明白了,都有很详细的说明
我们一般使用的客户端都是图形界面的,所以这些命令我们都不需要了解
参考技术B 用IE或者专门的FTP软件都可以。需要一个账户和密码来登录服务器。登录成功以后跟本地拷贝和粘贴差不多。 参考技术C

FTP支持两种模式,一种方式叫做Standard (也就是
PORT方式,主动方式),一种是 Passive(也就是PASV,被动方式)。 Standard模式 FTP的客户端发送 PORT
命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到 FTP Server。

下面介绍一下这两种方式的工作原理:

Port

FTP 客户端首先和FTP服务器的TCP
21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。
PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP
server必须和客户端建立一个新的连接用来传送数据。

Passive

在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,通过三次握手建立通道,然后FTP服务器将通过这个端口进行数据的传送。

很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP
20无法和内部网络的客户端建立一个新的连接,造成无法工作。

一般在使用FTP时,很多人会选择FTP工具,因为方便快捷。

比如IIS7服务器管理工具,

IIS7服务器管理工具可以批量管理FTP账号,定时上传下载,自动更新,自动备份。

此外,它是一款服务器批量管理工具,可以集中管理windows及linux服务器,以及作为ftp及vnc的客户端使用,纯中文管理系统,免费使用。

参考技术D 上传和下载都要打的开FTP服务器 你这个问题不是问题

http上传下载和ftp上传下载的原理一样吗?有啥差别?

其实从单纯的上传和下载来讲,原理是一样的,都是通过网络,点对点(也就是客户机与服务器间的数据传输),但两者的连接方式不同,两者所采用的协议不同,HTTP所采用的链接是通过浏览器发送链接地址进入到服务器指定位置上传或下载,客户端没有选择性。FTP就是通过双方的FTP程序,点对点的可以对服务器主机进行远程选择(也就是相当于进入远程主机硬盘)存放路径。 参考技术A 肯定有差别啊,http不需要密码,ftp可要可不要

以上是关于客户端是如何上传数据到FTP服务器和从FTP服务器下载文件的?的主要内容,如果未能解决你的问题,请参考以下文章

android中如何上传图片到FTP服务器

http上传下载和ftp上传下载的原理一样吗?有啥差别?

C# 将FTP文件转移到另一个FTP服务器上如何实现

C# winform如何实现批量上传文件到远程服务器?

JAVA如何把本地文件上传到服务器。

企业网络中利用FTP协议来实现文件的上传和下载