從檔案編碼的方式來看,檔案可分為ascii碼檔案和二進位製碼檔案兩種:
ascii檔案:也稱為文字檔案,這種檔案在磁碟中存放時每個字元對應乙個位元組,用於存放對應的ascii碼
二進位制檔案:它是按二進位制的編碼方式來存放檔案的
ascii檔案也稱為文字檔案,這種檔案在磁碟中存放時每個字元對應乙個位元組,用於存放對應的ascii碼。例如,數5678的儲存形式為:
ascii碼: 00110101 00110110 00110111 00111000
十進位製碼:5 6 7 8 共占用4個位元組。ascii碼檔案可在螢幕上按字元顯示, 例如源程式檔案就是ascii檔案,用dos命令type可顯示檔案的內容。 由於是按字元顯示,因此能讀懂檔案內容。
二進位制檔案是按二進位制的編碼方式來存放檔案的。 例如, 數5678的儲存形式為: 00010110 00101110只佔二個位元組。二進位制檔案雖然也可在螢幕上顯示, 但其內容無法讀懂。c系統在處理這些檔案時,並不區分型別,都看成是字元流,按位元組進行處理。 輸入輸出字元流的開始和結束只由程式控制而不受物理符號(如回車符)的控制。 因此也把這種檔案稱作「流式檔案」。
ftp協議的任務是從一台計算機將檔案傳送到另一台計算機,它與這兩台計算機所處的位置、聯接的方式、甚至是是否使用相同的作業系統無關。假設兩台計算機通過ftp協議對話,並且能訪問internet, 你可以用ftp命令來傳輸檔案。每種作業系統使用上有某一些細微差別,但是每種協議基本的命令結構是相同的。
ftp的傳輸有兩種方式:ascii傳輸模式和二進位制資料傳輸模式。
1.ascii傳輸方式:假定使用者正在拷貝的檔案包含的簡單ascii碼文字,如果在遠端機器上執行的不是unix,當檔案傳輸時ftp通常會自動地調整檔案的內容以便於把檔案解釋成另外那台計算機儲存文字檔案的格式。
但是常常有這樣的情況,使用者正在傳輸的檔案包含的不是文字檔案,它們可能是程式,資料庫,字處理檔案或者壓縮檔案(儘管字處理檔案包含的大部分是文字,其中也包含有指示頁尺寸,字型檔等資訊的非列印字元)。在拷貝任何非文字檔案之前,用binary 命令告訴ftp逐字拷貝,不要對這些檔案進行處理,這也是下面要講的二進位制傳輸。
2.二進位制傳輸模式:在二進位制傳輸中,儲存檔案的位序,以便原始和拷貝的是逐位一一對應的。即使目的地機器上包含位序列的檔案是沒意義的。例如,macintosh以二進位制方式傳送可執行檔案到windows系統,在對方系統上,此檔案不能執行。
如果你在ascii方式下傳輸二進位制檔案,即使不需要也仍會轉譯。這會使傳輸稍微變慢 ,也會損壞資料,使檔案變得不能用。(在大多數計算機上,ascii方式一般假設每一字元的第一有效位無意義,因為ascii字元組合不使用它。如果你傳輸二進位制檔案,所有的位都是重要的。)如果你知道這兩台機器是同樣的,則二進位制方式對文字檔案和資料檔案都是有效的。
ftp的工作方式
ftp支援兩種模式,一種方式叫做standard (也就是 port方式,主動方式),一種是 passive (也就是pasv,被動方式)。 standard模式 ftp的客戶端傳送 port 命令到ftp伺服器。passive模式ftp的客戶端傳送 pasv命令到 ftp server。
下面介紹乙個這兩種方式的工作原理:
port模式ftp 客戶端首先和ftp伺服器的tcp 21埠建立連線,通過這個通道傳送命令,客戶端需要接收資料的時候在這個通道上傳送port命令。 port命令包含了客戶端用什麼埠接收資料。在傳送資料的時候,伺服器端通過自己的tcp 20埠連線至客戶端的指定埠傳送資料。 ftp server必須和客戶端建立乙個新的連線用來傳送資料。
passive模式在建立控制通道的時候和standard模式類似,但建立連線後傳送的不是port命令,而是pasv命令。ftp伺服器收到pasv命令後,隨機開啟乙個高階埠(埠號大於1024)並且通知客戶端在這個埠上傳送資料的請求,客戶端連線ftp伺服器此埠,然後ftp伺服器將通過這個埠進行資料的傳送,這個時候ftp server不再需要建立乙個新的和客戶端之間的連線。
很多防火牆在設定的時候都是不允許接受外部發起的連線的,所以許多位於防火牆後或內網的ftp伺服器不支援pasv模式,因為客戶端無法穿過防火牆開啟ftp伺服器的高階埠;而許多內網的客戶端不能用port模式登陸ftp伺服器,因為從伺服器的tcp 20無法和內部網路的客戶端建立乙個新的連線,造成無法工作。
FTP傳輸方式
ftp是檔案傳輸協議的簡稱。利用這個協議定義的標準可以建立乙個通訊模型,用來傳輸客戶端和伺服器之間需要傳輸的各種資料。為了保證控制資訊的安全,這個通訊模型使用了兩個埠。看了網上一些資料,思考了一下。鄙人認為,使用兩個埠可以更方便進行實時的檔案傳輸和檔案控制操作。這才符合ftp的隱藏含義,可以遠端進行...
FTP傳輸兩種方式
for ftpfile ff fsname 分析對方公司,估計是改變了傳輸方式,將ftp伺服器改為了linux後採用了二進位制上傳,因此出現了這種問題。ftp協議的任務是從一台計算機將檔案傳送到另一台計算機,它與這兩台計算機所處的位置 聯接的方式 甚至是是否使用相同的作業系統無關。假設兩台計算機通過...
使用正確的FTP傳輸方式
使用ftp上傳檔案時,一定注意所選用的傳輸方式,比如使用了ascii上傳檔案後之後,再把檔案拉回本地,覆蓋原始檔 會發現檔案有了改動,用svn提交時,會有這樣的提示 text是相同的,但換行 newlines 變了 為什麼會這樣?ftp有ascii和binary兩種傳輸模式。binary模式不會對資...