一、FTP簡(jiǎn)介
“FTP”這個(gè)詞是文件傳送協(xié)議的縮寫(File Transfer Protocol),F(xiàn)TP的主要作用就是讓用戶連接上一臺(tái)所希望瀏覽的遠(yuǎn)程計(jì)算機(jī)。這臺(tái)計(jì)算機(jī)必須運(yùn)行著FTP服務(wù)器程序,并且儲(chǔ)存著很多有用的文件,其中包括計(jì)算機(jī)軟件、圖像文件、重要的文本文件、聲音文件等等。這樣的計(jì)算機(jī)稱為FTP站點(diǎn)或FTP服務(wù)器。通過FTP程序,用戶可以查看到FTP服務(wù)器上的文件。FTP是在Internet上傳送文件的規(guī)定的基礎(chǔ)。我們提到FTP時(shí)不只是認(rèn)為它是一套規(guī)定,FTP是一種服務(wù),它可以在Internet上,使得文件可以從一臺(tái)Internet主機(jī)傳送到另一臺(tái)Internet主機(jī)上,通過這種方式,主要靠FTP把Internet中的主機(jī)相互聯(lián)系在一起。
像大多數(shù)的Internet服務(wù)一樣,FTP使用客戶機(jī)/服務(wù)器系統(tǒng),你在使用一個(gè)名叫ftp的客戶機(jī)程序時(shí), 就和遠(yuǎn)程主機(jī)上的服務(wù)程序相連了。你也許知道,當(dāng)你從遠(yuǎn)程計(jì)算機(jī)上拷貝文件到自己的計(jì)算機(jī)上時(shí),我們稱為“下傳”(downloading)文件; 當(dāng)你從自己的計(jì)算機(jī)上拷貝文件到遠(yuǎn)程計(jì)算機(jī)上時(shí),稱為你“上傳”(uploading)文件。 如果你不明白的話,就請(qǐng)想象有一臺(tái)遠(yuǎn)程計(jì)算機(jī)懸浮在你頭上的天空之中,“up”就是遠(yuǎn)離你,“down”就是朝向你。
當(dāng)我們談?wù)摚疲裕袝r(shí),我們使用和Telent相同的術(shù)語。你的計(jì)算機(jī)叫做本地主機(jī),別的計(jì)算機(jī)叫做遠(yuǎn)程主機(jī)。在Internet語言中,我們說這個(gè)ftp客戶機(jī)程序允許你向遠(yuǎn)程主機(jī)發(fā)送或接收文件。
當(dāng)使用ftp程序時(shí),你錄入ftp命令和你想要連接的遠(yuǎn)程主機(jī)的地址。一旦程序開始,你就可以錄入命令,來回拷貝文件。當(dāng)你使用ftp時(shí), 有很多命令你都可以使用。例如,你可以查詢遠(yuǎn)程計(jì)算機(jī)上的目錄,并且可以變換目錄。
二、FTP的工作原理
FTP也是基于C/S模式而設(shè)計(jì)的。在進(jìn)行FTP操作的時(shí)候,即需要客戶應(yīng)用程序,也需要服務(wù)器端程序。我們一般先在自己的計(jì)算機(jī)中執(zhí)行FTP客戶應(yīng)用程序,在遠(yuǎn)程服務(wù)器中執(zhí)行FTP服務(wù)器應(yīng)用程序,這樣,就可以通過FTP客戶應(yīng)用程序和FTP進(jìn)行連接。連接成功后,可以進(jìn)行各種操作。在FTP中,客戶機(jī)只提出請(qǐng)求各接收服務(wù),服務(wù)器只接收請(qǐng)求和執(zhí)行服務(wù)。
在利用FTP進(jìn)行文件傳輸之前,用戶必須先連入INTERNET網(wǎng)中,在用戶自己的計(jì)算機(jī)上啟動(dòng)FTP用戶應(yīng)用程序,并且利用FTP應(yīng)用程序和遠(yuǎn)程服務(wù)器建立連接,激活遠(yuǎn)程服務(wù)器上的FTP服務(wù)器程序。準(zhǔn)備就緒后,用戶首先向FTP服務(wù)器提出文件傳輸申請(qǐng),F(xiàn)TP服務(wù)器找到用戶所申請(qǐng)的文件后,利用TCP/IP將文件的副本傳送到用戶的計(jì)算機(jī)上,用戶的FTP程序再將接收到的文件寫入自己的硬盤。文件傳輸完后,用戶計(jì)算機(jī)與服務(wù)器計(jì)算機(jī)的連接自動(dòng)斷開。
與其他的C/S模式不同的是,F(xiàn)TP協(xié)議的客戶機(jī)與服務(wù)器之間需要建立雙重連接:一個(gè)是控制連接,另一個(gè)是數(shù)據(jù)連接。這樣,在建立連接時(shí)就需要占用兩個(gè)通信信道?! ?
三、匿名FTP簡(jiǎn)介
我們已經(jīng)講了,FTP允許你把文件從一個(gè)Internet計(jì)算機(jī)傳遞到另一個(gè)計(jì)算機(jī)上。但是,這里有一個(gè)基本的約束:如果你沒有被正式授權(quán)的話,就不能進(jìn)入計(jì)算機(jī)。習(xí)慣上講,這就意味著你必須在那臺(tái)計(jì)算機(jī)上登錄。換句話說,你只有在有了一個(gè)用戶標(biāo)識(shí)和口令之后,才能在計(jì)算機(jī)上拷貝文件。
匿名FTP是這樣一種工具:作為用戶,你本來不注冊(cè)就不能和遠(yuǎn)程主機(jī)聯(lián)系并“下傳”文件,但是,這個(gè)管理系統(tǒng)提供了一個(gè)指定的的用戶標(biāo)識(shí)anonymous(匿名),在Internet上, 任何人在任何地方都可以使用它。
你不能在沒有提供這種匿名FTP服務(wù)的Internet主機(jī)上使用匿名FTP。
你可以使用anonymous作為用戶名,至于口令,你可以將你的電子郵件地址作為口令輸入,但是在輸入后不會(huì)在屏幕上回顯。
現(xiàn)在有很多的FTP匿名服務(wù)器,例如東方網(wǎng)景ftp://ftp.east.net.cn
ftp>open ftp.east.net.cn
Connected to ftp.east.net.cn FTP server
(Version 6.6 Wed Apr 14 21:00:27 EDT 1993) ready.
Name (rtfm.mit.edu:harley): anonymous
331 Guest login ok, send e-mail address as password.
Password:tlfm@263.net
230 Guest login ok, access restrictions apply.
ftp> cd/pub/usenet/news.answers
250 CWD command successful.
ftp> dir(列出當(dāng)前目錄的文件)
ftp> quit(或bye)
221 Goodbye.
四、ASCII文件和二進(jìn)制文件的傳輸
一個(gè)文本文件(也叫做ASCII文件)由普通的字符、字母、數(shù)字、標(biāo)點(diǎn)等等組成。二進(jìn)制文件包含的信息不是文本的。例如,如果你想“下傳”包含圖像的文件,你就涉及二進(jìn)制文件了。在一般情況下,ftp程序都認(rèn)為它是在對(duì)文本文件進(jìn)行操作, 如果你想“下傳”二進(jìn)制文件,你就應(yīng)該在錄入get或mget命令之前告訴程序。 binary命令告訴ftp程序你將要“下傳”二進(jìn)制文件。 如果你要換回來, ascii命令就表示你將要“下傳”文本文件?! ?
例如:
ftp>binary (標(biāo)明要傳輸一個(gè)二進(jìn)制文件)
200 Type set to I (I代表“image”或者“二進(jìn)制”)
ftp>put program.exe (上傳一個(gè)可執(zhí)行文件)
ftp>ascii (標(biāo)明要傳輸一個(gè)文本文件)
200 Type set to A (A代表“ASCII”或者“文本”)
ftp>get help.txt (一個(gè)“文本文件”)
這里我們提供一些常用的文件類型以及相應(yīng)的傳輸模式?!?
文件類型 傳輸模式
文本文件 ASCII
電子表格 二進(jìn)制文件
數(shù)據(jù)庫文件 可能是ASCII,也可能是二進(jìn)制文件
字處理器文件 可能是ASCII,也可能是二進(jìn)制文件
程序源代碼 ASCII
電子郵件消息 ASCII
PKzip壓縮過的文件 二進(jìn)制文件
備份文件 二進(jìn)制文件
壓縮文件 二進(jìn)制文件
BinHex或者uuencoded文件 ASCII
執(zhí)行文件 二進(jìn)制文件
postScript激光打印機(jī)文件 ASCII
WWW(HTML)文件 ASCII
圖形文件 二進(jìn)制文件
聲音文件 二進(jìn)制文件
五、FTP基本命令表
1、基本命令
quit關(guān)閉和遠(yuǎn)程主機(jī)的聯(lián)系,終止ftp程序
?顯示所有ftp命令表
?command顯示一行指定的命令的概況
help顯示所有ftp命令表
help command顯示一行指定的命令的概況
! 本地主機(jī):停止ftp,開始shell
! command本地主機(jī):執(zhí)行指定的shell命令連接
open[host]與指定計(jì)算機(jī)建立
2、連接
close關(guān)閉和遠(yuǎn)程主機(jī)的連接,但保留ftp
user[name[password]]設(shè)置用戶標(biāo)識(shí)
3、目錄
cd[directory]遠(yuǎn)程主機(jī):改變到指定的目錄
cdup遠(yuǎn)程主機(jī):改變到主目錄
dir[directory[local-file]]遠(yuǎn)程主機(jī):顯示長(zhǎng)的目錄清單
lcd[directory]本地主機(jī):改變目錄
ls[directory[local-file]]遠(yuǎn)程主機(jī):顯示短目錄清單
pwd遠(yuǎn)程主機(jī):顯示當(dāng)前目錄名
4、傳送文件
get[remote-file[local-file]]“下傳”一個(gè)文件
mget[remote-file...]“下傳”多個(gè)文件
5、設(shè)置選項(xiàng)
ascii(缺?。┌盐募O(shè)置成ASCII文本文件
binary把文件設(shè)置成二進(jìn)制文件
hash是/不:每傳送一個(gè)數(shù)據(jù)塊顯示一個(gè)#號(hào)
prompt是/不:傳送多個(gè)文件的提示
status顯示選項(xiàng)的當(dāng)前狀態(tài)
六、客戶端FTP應(yīng)用程序的應(yīng)用
1、基于字符界面的FTP程序的使用
可以通過啟動(dòng)WIN9X下的ftp.exe,然后用以上提到的一些實(shí)用命令。
2、基于圖形界面的FTP應(yīng)用程序
利用IE和Netscape Navigator都可以訪問FTP站點(diǎn)。但兩者是有區(qū)別的,IE只能從匿名FTP站點(diǎn)文件,但不能向其他FTP站點(diǎn)上載文件,而Netscape Navigator既可以用來從匿名FTP站點(diǎn)文件,又可以向你擁有帳號(hào)的FTP站點(diǎn)上載文件。但是還有許多基于WINDOWS界面的FTP工具。例如我們?cè)趥魉蛡€(gè)人網(wǎng)站到遠(yuǎn)程主機(jī)上時(shí),可以借助于FTP工具(當(dāng)然在你申請(qǐng)個(gè)人網(wǎng)站空間時(shí),主程主機(jī)會(huì)給你一個(gè)賬號(hào),密碼可自行設(shè)定)。這樣的軟件有很多CuteFTP3.0.27就是其中之一。
七、文件的壓縮和歸檔
有大量的工具用來壓縮文件。在Windows平臺(tái)上,WinZIP8.0和更早的工具pkzip是較常見的。在Macintosh上有Stuffit,UNIX上有一些工具如:compress和gzip。
一般利用FTP傳輸文件,都是先將同一目錄下的文件進(jìn)行打包,成為*.tar文件,然后再進(jìn)行壓縮,成為*.zip,或者*.z文件。當(dāng)你該文件后,先必須解壓,再進(jìn)行解包。
如:在FTP站點(diǎn)上,有一目錄PUB下十個(gè)文件,要讓用戶能夠一次性這十個(gè)文件,先打包成files.tar,打包后的文件大小并沒有改變,要節(jié)省存儲(chǔ)空間,和提高傳輸速度還必須進(jìn)行壓縮,壓縮后該文件成為files.tar.z
當(dāng)客戶端該文件后,利用工具先解壓縮,成為files.tar,再利用工具將打包的文件解開,成為當(dāng)初的十個(gè)文件。
一般在UNIX系統(tǒng)中,利用tar進(jìn)行打包和拆包操作
打包用命令:tar -cf files.tar “所要打包的目錄”
拆包用命令:tar -xf files.tar
利用compress和uncompress進(jìn)行壓縮和解壓縮處理?! ?
在windows平臺(tái)下,打包和壓縮是同時(shí)處理的。例如winZIP就是這樣。