FTP简介:
1,文件传输协议FTP(File Transfer Protocol由RFC959描述)
2,FTP设计的目的是为了不同主机之间高效的文件传输,能够屏蔽不同主机不同的文件系统的差异
3,工作在TCP/IP协议族的应用层,传输层使用的是TCP协议,是基于客户/服务器模式工作的
FTP所支持的文件类型(因为是在不同主机的不同文件系统之间进行数据传输,文件共享):
1,ASCII码文件,这是FTP默认的文本格式
2,EBCDIC码文件,它也是一种文本类型文件,用8位代码表示一个字符,该文本文件在传输时,要求两端都使用
EBCDIC格式
3,图像(Image)文件,也称之为二进制文件,发送的数据为连续的比特流,通常用于传输二进制文件
4,本地文件,(传输的字节数总是由8个bit数构成,但是:逻辑字节数并不总是8个bit数,尽管我们现在 所看到的主机的逻辑地址总是8个.实际上,在早期,有一些主机,它的逻辑字节可能是10位,也可能是36 位,当然也可能是其他的位数,这个时候,逻辑字节数就是由发送方来规定的),所以说:本地文件的字节大小 由本地主机来决定,也就是说:字节的大小是不定的.
因为ftp是在不同主机不同的文件系统中传输,所以支持这种文件
实际上,大部分的ftp服务器仅仅只是实现了ASCII码文件,图像(Image)文件的传输,而其他的两种文件已经不长用了,所以我们现在编写的ftp也就仅仅只支持ASCII码文件,图像(Image)文件
ASCII码文件:也称为文本文件,如果我们用一个文本编辑器来打开一个文本文件,那么就会将一个个字符显示出来
二进制文件:如果同样的,我们用文本编辑器来打开,很有可能显示的是乱码,,
(上面这些都是我们最直观的感受)
实际上,两者在物理上或者存储结构上没有本质的区别,,,都是由一系列比特位构成的
不同仅仅在逻辑上,或者说系统对它们的解析方式不同
ASCII码文件是由ASCII字符构成的,由7位bit位构成(128个字符),最高位总是0(如果最高位1,那么文 本编辑器很有可能就无法显示,显示的是乱码)
所以说:二进制文件当中的一个字符的最高位很可能是1
这就是两者之间的差别....(还有一个就算:\r\n之间的解析方式不同,我们知道不同的系统的换行符是不一样 的)
windows:换行符就是\r\n
Linux:换行符就是\n
mac:换行符就是\r
也就是说:在window下打开一个txt文件,我们输入abc,并且按下回车,保存退出,那么当前
这个文件的大小就应该是5(a,b,c,\r,\n)
也就是说:对于上传的文件(如果是ascii码文件,从window -> Linux,那么会将\r\n转换为
\n,从Linux -> window,那么会将\n转换为\r\n)