`

FTP 协议讲座

阅读更多
菜菜() 16:06:51
FTP是一个古老的文件传输协议
菜菜() 16:07:11
file transfer protocol
菜菜() 16:07:40
设计目的就四个字,简单高效
菜菜() 16:19:00
再跑个题,金融系统里,FTP是个非常常见的词
菜菜() 16:19:16
资产转移定价的缩写
菜菜() 16:21:52
有的部门吸收资金进来,
菜菜() 16:21:58
有的部门把钱放出去,
菜菜() 16:22:06
怎么算大家的绩效呢
菜菜() 16:22:09
就靠FTP,
菜菜() 16:22:21
这个是内部的价格。
菜菜() 16:22:29
比如6.1%,
菜菜() 16:23:09
那么吸收资产进来的人,如果都是按每年给4%的成本(利息或理财收益)拿到的,
菜菜() 16:23:25
那么他的绩效就是6.1-4=2.1%
菜菜() 16:24:19
放贷的人,8.1%的利息放出去的,那么他的绩效就是8.1-6.1=2%
菜菜() 16:28:46
FTP的目标就是简单高效。
菜菜() 16:28:54
跟SMTP协议类型,
菜菜() 16:29:14
后来的一种消息协议,也跟他们类似,这就是STOMP协议。
菜菜() 16:29:16
有兴趣的可以看看。
菜菜() 16:29:46
简单文本对象消息协议。
菜菜() 16:30:00
FTP一共就30来个命令
菜菜() 16:30:16
真正常用的,干活的,也就10来个命令。
菜菜() 16:30:18
非常简单
菜菜() 16:31:07
注意,这里说的命令,不仅仅是指我们通过ftp命令行连接到ftp server,然后敲入的命令。
菜菜() 16:31:29
而是发给ftp server的指令。
菜菜() 16:31:41
这是可以直接自己编程实现的。
菜菜() 16:32:15
我们一会儿再讲命令,先说基础,FTP的通讯机制比较有意思
菜菜() 16:32:28
FTP基于TCP协议。
菜菜() 16:33:18
client通过tcp连接上server以后,一般先要验证身份,
菜菜() 16:33:29
这时候发送的是两行文本作为命令,
菜菜() 16:33:37
先发USER kimmking
菜菜() 16:34:03
表示用户kimmking要登陆
菜菜() 16:34:14
再发PASS 123456
菜菜() 16:34:21
那不就结了
菜菜() 16:34:49
你在代码封装的js里写什么汉子,都会被自动转unicode的
菜菜() 16:35:09
表示用密码123456登陆,
铁锚(551996458) 16:35:26
源码 --> 编译程序 --> 实际代码 -->  执行器
菜菜() 16:35:28
第一步一般返回331 状态吗(印象中好像是的,具体忘记了)
菜菜() 16:35:43
表示需要验证身份。
菜菜() 16:35:57
密码ok后,返回状态吗 220还是200
菜菜() 16:36:10
状态吗跟HTTP的基本一致。
菜菜() 16:36:19
2xx是成功
屁冬(307948631) 16:36:22
kk基本功好杂事
菜菜() 16:36:42
服务器返回的信息可以带上额外信息,
菜菜() 16:37:00
比如 331  please enter your password
菜菜() 16:37:01
这种。
菜菜() 16:37:47
有些ftp server,你连接上以后,返回一些欢迎信息,
菜菜() 16:37:51
就是用这个原理做的
菜菜() 16:38:06
状态吗后面可以带上额外的信息
菜菜() 16:38:19
好了,练上来以后,就可以操作了
菜菜() 16:38:38
所有的文件相关的管理系统,多会有的几个标准功能,
菜菜() 16:39:04
查看当前路径,进入某个子目录,返回上一级目录,等等
菜菜() 16:41:25
查看当前文件夹所有的子目录和文件
菜菜() 16:42:29
好了,看到文件了接着怎么办呢
菜菜() 16:42:39
上传下载呗
菜菜() 16:42:52
具体怎么上传下载呢
菜菜() 16:43:02
这里就有几个细节需要处理了
菜菜() 16:43:21
1、TYPE  二进制还是文本格式
菜菜() 16:43:48
注意,如果是二进制的文件,按文本(type i)的方式处理,一般会完蛋。
2、MODE,主动模式和被动模式
菜菜() 16:45:54
但是主动模式被动模式,是FTP协议的经典技巧之一
菜菜() 16:46:29
这里需要讲到FTP的一个漂亮设计,
菜菜() 16:46:41
命令通道与数据通道,完全分离。
菜菜() 16:47:15
即我们连接上FTPserver的这个tcp通道,只来回传输命令和命令的响应信息。
菜菜() 16:47:21
不传输数据。
菜菜() 16:47:26
文件的数据,
菜菜() 16:47:38
单独走tcp通道,来传输。
菜菜() 16:47:46
这个设计,太经典了。
菜菜() 16:48:38
数据一直在传输,也不会影响你给ftp server发命令。
菜菜() 16:48:45
相互之间木有影响。
菜菜() 16:49:16
每次需要传输数据的时候,另起一个socket来做数据传输的事儿。
菜菜() 17:24:23
每次传输的时候另起一个socket,
菜菜() 17:24:34
问题就来了。
菜菜() 17:24:49
这需要额外的端口啊
菜菜() 17:25:15
如果通讯的两端,有一端有防火墙不让开端口怎么办
菜菜() 17:25:32
FTP给出的解决办法就是主动或被动模式
菜菜() 17:27:28
主动模式就是服务器主动去连客户端,
菜菜() 17:27:56
client发送一个命令 PORT  10,0,0,5,999
菜菜() 17:28:32
server看到后,就会自己去连client 10.0.0.5的999端口
菜菜() 17:28:36
然后开始传输数据。
菜菜() 17:29:05
被动模式就是发个PASV命令,client哥哥这边开不了端口,
菜菜() 17:29:18
你server端妹妹开个端口,让哥哥我连把
菜菜() 17:30:48
server收到以后,自己回复个端口,让client来连
菜菜() 17:31:06
这样,命令链路和数据链路是分开的。
菜菜() 17:31:22
可以灵活选择谁来开端口,谁来连。
菜菜() 17:31:28
so easy
菜菜() 17:31:38
下一个问题,
菜菜() 17:31:45
断点续传的问题。
菜菜() 17:32:01
FTP传输的文件,如果是小文件没什么好说的,
菜菜() 17:32:04
如果是大文件,
菜菜() 17:32:11
传一半断了,怎么办
菜菜() 17:32:34
特别是下载这一块,如果支持从文件的某个位置开始下载,
菜菜() 17:32:45
那么就可以支持多线程下载了。
菜菜() 17:33:58
(PS:HTTP也支持,可以用header的range头制定本次要下载的字节范围,比如1025-2048,表示要下载这个从1025字节到2048的这一k的数据)
菜菜() 17:34:42
(BUT,HTTP的文件上传功能太2b,不支持断点,而且效率非常之差)
菜菜() 17:35:10
怎么支持断点呢
铁锚(551996458) 17:35:50
断点都必须是数据的接收端决定。
铁锚(551996458) 17:36:04
谁收数据谁决定断点
菜菜() 17:37:21
对的。
菜菜() 17:37:30
不管是上传还是下载,
菜菜() 17:38:49
我们可以先说明我从说明地方开始传输文件。
菜菜() 17:38:57
REST一个位置,
菜菜() 17:39:11
然后retr和stor命令下载和上传文件。
菜菜() 17:40:32
前者server从rest指定的位置开始传输数据到client
大漠穷秋<zhaiwei668hp@163.com> 17:40:58
我们可以先说明我从说明地方开始传输文件。是啥意思
菜菜() 17:41:24
就是先告诉服务器,我们就是要从指定的位置续传
菜菜() 17:41:04
后者server将client传上来的数据,从指定的位置开始写入server端的文件。
菜菜() 17:41:39
比如一个文件A.txt,我们已经下载1M了,
菜菜() 17:41:53
我们现在要开始从1M1字节的位置开始下载。
菜菜() 17:42:00
服务器不用给我前面1M的数据了。
菜菜() 17:42:42
这是FTP的第二个经典设计
菜菜() 17:42:52
私聊。
菜菜() 17:42:54
我这有。
菜菜() 17:44:50
前面讲错一点,Type i是二进制,type a是文本
菜菜() 17:45:10
另外两个常用命令,
菜菜() 17:45:25
ABOR 取消数据连接。
菜菜() 17:45:35
因为命令通道跟数据时独立的,
菜菜() 17:45:51
所以,,,如果我们传输数据的时候反悔了,可以取消掉。
菜菜() 17:46:16
还有一个就是如果我们用ftp客户端工具的时候,经常能见到的
菜菜() 17:46:18
NOOP,
菜菜() 17:46:32
最最原始的keep alive方式
菜菜() 17:46:50
为了防止 连接长期不活动被系统Kill掉。
菜菜() 17:47:01
client可以定时发送NOOP命令
菜菜() 17:47:08
server收到以后,什么都不干。
菜菜() 17:47:24
大家握个手。
菜菜() 17:47:31
say hi
菜菜() 17:47:39
最后一个命令, QUIT,
菜菜() 17:47:51
say bay
菜菜() 17:48:06
关闭命令链路。
菜菜() 17:48:56
补充下,查了下状态码,
菜菜() 17:49:13
1xx是操作说明
菜菜() 17:49:20
2xx是操作成功状态
菜菜() 17:49:27
3xxx是需要认证
菜菜() 17:49:41
4xx是客户端错误
菜菜() 17:49:46
5xx是服务器端错误
菜菜() 17:50:05
FTP有什么特点
铁锚(551996458) 17:50:10
redirect 的 HTTP返回码是多少?
菜菜() 17:50:18
301 302
菜菜() 17:50:26
分别对应内部转移和外部转移
菜菜() 17:52:15
查了下,也记错了
菜菜() 17:52:33
301永久重定向,302临时重定向
菜菜() 17:52:39
我们一般见到的应该是301
菜菜() 17:52:58
http的header里多出来一个location: 新的网址
菜菜() 17:53:17
浏览器根据这个header来跳转到新的网址
菜菜() 17:57:07
html里写 location = xx
菜菜() 17:57:16
这是完全的浏览器行为
菜菜() 17:57:21
跟server状态没关系
分享到:
评论

相关推荐

    STM32 初级课程-TCP-IP协议讲座1.pdf

    应用层是用户的主要接口,提供了一系列高级协议供用户使用,如 SMTP(简单邮件传输协议)、HTTP(超文本传输协议)、FTP(文件传输协议)、DHCP(动态主机配置协议)、DNS(域名系统协议)等。这些协议支持用户在...

    TCP/IP协议系列讲座

    1. 应用层:这是最顶层,直接与用户交互,包括HTTP、FTP、SMTP等常见应用协议。 2. 传输层:主要负责数据的可靠传输,有两个关键协议——TCP(传输控制协议)和UDP(用户数据报协议)。TCP提供面向连接的服务,确保...

    STM32 初级课程-TCP-IP协议讲座3.pdf

    在给定的文件信息中,我们可以看到包含了关于STM32以及TCP/IP协议的讲座内容。STM32是STMicroelectronics公司生产的一系列32位微控制器产品线,广泛应用于嵌入式系统开发中。而TCP/IP协议是一组用于数据传输的协议,...

    wust计算机学院ftp站点使用图解

    总的来说,武汉科技大学计算机学院的FTP站点是一个丰富的学习资源库,通过FTP协议提供便捷的访问方式,帮助学生和教师获取学习材料,提升自我教育水平。正确使用FTP工具和了解其工作原理,能够有效利用这些资源,...

    014-趣谈网络协议014-趣谈网络协议

    本讲座“014-趣谈网络协议”旨在深入浅出地探讨这个关键领域,帮助我们理解网络背后的运作机制。 首先,我们要了解网络协议的核心概念。在计算机网络中,数据通信依赖于一系列标准和规范,这就是网络协议。最著名的...

    Internet技术知识讲座----TCP,IP协议

    **互联网技术知识讲座——TCP与IP协议** 在深入探讨TCP/IP协议之前,我们先要理解互联网(Internet)的基础。互联网是一种全球性的网络,它通过TCP/IP协议族将世界各地的计算机连接在一起,使得信息交流变得简单...

    网络基础知识讲座

    此外,还有应用层的HTTP(超文本传输协议)用于网页浏览,FTP(文件传输协议)用于文件传输,SMTP(简单邮件传输协议)用于电子邮件等。 网络硬件包括计算机、网卡、集线器、交换机、路由器等。网卡是计算机接入...

    美河制作.六个月成为网络专家.协议分析.其他网络传输协议分析

    3. **FTP(文件传输协议)**:用于在互联网上进行文件的上传和下载,有匿名FTP和需要认证的FTP。 4. **SMTP(简单邮件传输协议)**:处理电子邮件的发送,而POP3(邮局协议)或IMAP(因特网消息访问协议)则用于...

    Pmon下的网络驱动和网络协议

    代万辉先生在2011年7月21日的讲座中可能讨论了Plan 9下网络驱动和网络协议的相关内容。具体的知识点包括: 1. 网卡驱动的功能与作用。网卡驱动负责初始化网卡硬件,以及处理网卡硬件与上层网络协议之间的数据传输。...

    计算机网络基础知识培训讲座PPT课件.pptx

    * 常见的网络协议有TCP/IP协议、HTTP协议、FTP协议等。 三、Internet * Internet是一个使世界上不同类型的计算机能交换各类数据的通信媒介。 * Internet是建立在高灵活性的通信技术之上的一个已硕果累累,正迅猛...

    iis技术讲座(chm)iis技术讲座(chm)

    IIS(Internet Information Services)是微软公司开发的一款用于在Windows操作系统上运行的互联网服务器软件,它提供了多种Web服务功能,包括HTTP、HTTPS、FTP、SMTP等协议的支持,使得用户能够搭建和管理自己的Web...

    最新计算机网络自顶向下方法第四版中文版专业知识讲座.ppt

    FTP则是文件传输协议,允许用户从远程服务器下载或上传文件。电子邮件服务依赖SMTP(简单邮件传输协议)来发送邮件,而DNS(域名系统)则将易于记忆的域名转换为IP地址,使得网络访问更为便捷。 在开发网络应用程序...

    TCP-IP协议基础 讲课实录.zip

    4. 讲课实录:这个讲座可能涵盖了TCP/IP协议族的各个层次,从应用层(如HTTP, FTP, SMTP等)到网络接口层(如Ethernet, Wi-Fi等),详细解释了各层的功能和协议,以及它们如何协同工作以实现网络通信。此外,可能会...

    Internet IIS 技术讲座

    本讲座将深入探讨IIS的技术细节,包括安装配置、安全管理、性能优化以及常见问题的解决。 **1. 安装与配置IIS** IIS的安装通常是在Windows Server的“服务器管理器”中进行,通过选择添加角色和服务,然后选择“Web...

    网络安全协议基础.pptx

    在本讲座中,我们将深入探讨TCP(传输控制协议)、UDP(用户数据报协议)以及Internet控制消息协议(ICMP)等关键协议。 TCP是一种面向连接的、可靠的传输层协议,它的设计目标是在不可靠的IP网络层上提供稳定的...

    26使用资源 张锦锋Symbian讲座

    这涉及到TCP/IP协议栈的使用,包括HTTP、FTP等协议。开发者需要理解如何使用RSock和RHttp classes建立网络连接,发送和接收数据。 4. 硬件接口的使用:Symbian设备可能包含各种硬件模块,如GPS、蓝牙、摄像头等。...

    VxWorks讲座(中文版)

    5. **网络支持**:内置TCP/IP协议栈,支持多种网络协议,包括HTTP、FTP、DNS等,使得VxWorks能轻松集成到网络环境中。 6. **设备驱动**:VxWorks拥有丰富的设备驱动库,支持各种硬件接口,如串口、并口、USB、...

    07-socket应用编程_专题讲座_v1.0.0(上)-王保明.rar

    【描述】"07-socket应用编程_专题讲座_v1.0.0(上)-王保明.rar" 提到的描述简洁,没有提供具体细节,但可以推断讲座内容可能包括了Socket编程的基本概念、API使用、TCP/IP协议栈的理解以及在Linux系统中的实现。...

Global site tag (gtag.js) - Google Analytics