ASCII傳輸方式假定用戶正在拷貝的文件包含的簡單ASCII碼文本,如果在遠程機器上運行的不是UNIX,當文件傳輸時ftp通常會自動地調(diào)整文件的內(nèi)容以便于把文件解釋成另外那臺計算機存儲文本文件的格式。但是常常有這樣的情況,用戶正在傳輸?shù)奈募牟皇俏谋疚募?,它們可能是程序,?shù)據(jù)庫,字處理文件或者壓縮文件。
在拷貝任何非文本文件之前,用binary 命令告訴ftp逐字拷貝。二進制傳輸模式在二進制傳輸中,保存文件的位序,以便原始和拷貝的是逐位一一對應的。即使目的地機器上包含位序列的文件是沒意義的。例如,macintosh以二進制方式傳送可執(zhí)行文件到Windows系統(tǒng),在對方系統(tǒng)上,此文件不能執(zhí)行。如在ASCII方式下傳輸二進制文件,即使不需要也仍會轉(zhuǎn)譯。這會損壞數(shù)據(jù)。(ASCII方式一般假設(shè)每一字符的第一有效位無意義,因為ASCII字符組合不使用它。如果傳輸二進制文件,所有的位都是重要的。)
默認狀態(tài)下,F(xiàn)TP 站點允許匿名訪問,F(xiàn)TP 服務器接受對該資源的所有請求,并且不提示用戶輸入用戶名或密碼。如果站點中存儲有重要的或敏感的信息,只允許授權(quán)用戶訪問,應禁止匿名訪問。
使用FTP時必須首先登錄,在遠程主機上獲得相應的權(quán)限以后,方可下載或上傳文件。也就是說,要想同哪一臺計算機傳送文件,就必須具有哪一臺計算機的適當授權(quán)。換言之,除非有用戶ID和口令,否則便無法傳送文件。這種情況違背了Internet的開放性,Internet上的FTP主機何止千萬,不可能要求每個用戶在每一臺主機上都擁有帳號。匿名FTP就是為解決這個問題而產(chǎn)生的。匿名FTP是這樣一種機制,用戶可通過它連接到遠程主機上,并從其下載文件,而無需成為其注冊用戶。
系統(tǒng)管理員建立了一個特殊的用戶ID,名為anonymous, Internet上的任何人在任何地方都可使用該用戶ID。通過FTP程序連接匿名FTP主機的方式同連接普通FTP主機的方式差不多,只是在要求提供用戶標識ID時必須輸入anonymous,該用戶ID的口令可以是任意的字符串。習慣上,用自己的E-mail地址作為口令,使系統(tǒng)維護程序能夠記錄下來誰在存取這些文件。值得注意的是,匿名FTP不適用于所有Internet主機,它只適用于那些提供了這項服務的主機。當遠程主機提供匿名FTP服務時,會指定某些目錄向公眾開放,允許匿名存取。系統(tǒng)中的其余目錄則處于隱匿狀態(tài)。作為一種安全措施,大多數(shù)匿名FTP主機都允許用戶從其下載文件,而不允許用戶向其上傳文件,也就是說,用戶可將匿名FTP主機上的所有文件全部拷貝到自己的機器上,但不能將自己機器上的任何一個文件拷貝至匿名FTP主機上。即使有些匿名FTP主機確實允許用戶上傳文件,用戶也只能將文件上傳至某一指定上傳目錄中。隨后,系統(tǒng)管理員會去檢查這些文件,他會將這些文件移至另一個公共下載目錄中,供其他用戶下載,利用這種方式,遠程主機的用戶得到了保護,避免了有人上傳有問題的文件,如帶病毒的文件。
FTP客戶端發(fā)起FTP會話,與FTP服務器建立相應的連接。FTP會話期間要建立控制信息進程與數(shù)據(jù)進程兩個連接??刂七B接不能完成傳輸數(shù)據(jù)的任務,只能用來傳送FTP執(zhí)行的內(nèi)部命令以及命令的響應等控制信息;數(shù)據(jù)連接是服務器與客戶端之間傳輸文件的連接,是全雙工的,允許同時進行雙向數(shù)據(jù)傳輸。當數(shù)據(jù)傳輸完成后,數(shù)據(jù)連接會撤消,再回到FTP會話狀態(tài),直到控制連接被撤消,并退出會話為止。