FTP - 以二进制形式传输 ascii 文件是一件坏事吗?

FTP - 以二进制形式传输 ascii 文件是一件坏事吗?

我们有一个本地开发服务器,用于开发网站。要将网站上线,需要通过 FTP 将其发送到我们的网络主机(遗憾的是,SSH/SFTP/Rsync 不是一种选择)。

我想运行一些脚本来比较/区分开发服务器上的网站与网络主机服务器上的网站。这非常简单,但是在 FTP 传输过程中,我一直使用自动(而不是 Ascii 或二进制)模式。

最后,所有文件(*.php、*.html 等)的大小都与本地开发服务器上的大小不同。经过一番研究,我认为这是因为它在传输过程中将 转换为\n\r\n因此,diff在进行目录比较时,即使文件的内容实际上相同,也会看到文件不同。

我发现如果我将 FTP 设置为以二进制形式传输所有内容,那么文件大小就不会有差异。

我想知道的是,以二进制模式传输所有内容(甚至是 ASCII 文件)是否会带来任何潜在危害?这种方法可能出现什么问题?如果不会出现任何问题,那么 ASCII 模式的意义何在?

答案1

当使用 ASCII 模式时,接收端需要将 ASCII 文本转换为与其操作系统兼容的格式,例如(如您所述) \n 可以转换为 \r\n 等。二进制模式传输是从源到目标的逐字节复制文件,不允许或期望进行任何翻译。

如果您的文件以二进制模式传输时正确运行/显示,那么对您来说没有任何不利影响。

相关内容