Ftp

FTP - 以二進制傳輸 ascii 文件是件壞事嗎?

  • December 8, 2011

我們有一個本地開發伺服器,用於開發網站。要將網站實時推送到我們的虛擬主機,它是通過 FTP 傳輸的(不幸的是,SSH/SFTP/Rsync 不是一個選項)。

我想執行一些腳本來比較/區分開發伺服器上的站點與 Web 主機伺服器上的站點。這很簡單,但是在 FTP 傳輸過程中,我一直使用自動(與 Ascii 或二進制相反)模式。

最後,所有文件(.php、.html 等)的文件大小都與本地開發伺服器上的不同。經過一些研究,我認為這是因為它在傳輸過程中轉換\n\r\n。結果,diff在進行目錄比較時,即使它們的內容實際上相同,也會看到文件不同。

我發現如果我將 FTP 設置為以二進制形式傳輸所有內容,那麼文件大小不會有差異。

我想知道的是,以二進制模式傳輸所有內容,甚至是 ASCII 文件,是否會帶來任何潛在的危害?這種方法會出現什麼問題?如果什麼都不會出錯,那麼 ASCII 模式的意義何在?

使用 ASCII 模式時,接收端應將 ASCII 文本轉換為與其作業系統兼容的格式,例如(如您所述)\n 可以轉換為 \r\n 等。二進制模式傳輸是一個字節文件從源到目標的字節副本不允許或不期望進行翻譯。

如果您的文件在以二進制模式傳輸時正確執行/顯示,那麼對您來說沒有缺點。

引用自:https://serverfault.com/questions/339137