项目中应用到ftp,将ftp的笔记上传一下。

简单的说:

HTTP是超文本传输协议;面向网页的。

FTP是File Transfer Protocol,文件传输协议;面向文件的。

1.FTP
(1)FTP比HTTP复杂
FTP和HTTP一样都是Internet上广泛使用的协议,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。
复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。

(2)FTP协议有两种工作方式:主动式和被动式。
PORT(主动)方式的连接过程:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。
当需要传送数据时, 客户端在命令链上发送PORT命令告诉 服务器:“我打开了XXXX端口,你过来连接我”。于是 服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时, 服务器在命令链上用PASV命令告诉 客户端:“我打开了XXXX端口,你过来连接我”。于是 客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。

从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而FTP的复杂性就在于此。

http与ftp的区别:

1.FTP要比HTTP早出现10年左右。
	2.HTTP协议是用来浏览网站的,
	3.FTP控制命令和传输数据使用两个不同的tcp,HTTP命令和数据传输都是一个tcp
	4.HTTP持久连接,FTP每次有数据的需要时都创建一个新的连接。
	5.HTTP中提供压缩算法,gzip比较有名
	6.HTTP支持代理

而FTP是用来访问和传输文件的
1.FTP要比HTTP早出现10年左右。

2.HTTP协议是用来浏览网站的,
而FTP是用来访问和传输文件的,
FTP文件传输有点批量上传和维护网站的意思,而HTTP文件传输更多的是为终端用户提供文件传输,比如电影、图片、音乐之类。

3.FTP一个最大的问题就是它使用两个连接,第一个连接用来发送控制指令,当接受或者发送数据的时候,又打开第二个TCP连接。
而HTTP在命令传输tcp中进行数据传输。

4.HTTP是持久连接的,FTP每次有数据的需要时都创建一个新的连接。
重复的创建新的连接带来的体验并不好,因为每次创建连接都必须让双方握手验证,这消耗了很多时间。

5.HTTP中的压缩算法:HTTP提供了一个在一些压缩算法中客户端和服务器共同协商选择的办法。其中gzip可以说是最有影响力的一种,而FTP中并不存在这种复杂的算法。

7.HTTP支持代理:HTTP一个很大的特点就是支持代理,这种功能是构建在协议里的,而FTP并不支持。

调研RPC协议