WIKI使用導航
站長百科導航
站長專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機
- cPanel
- 網(wǎng)址導航專題
- 云計算
- 微博營銷
- 虛擬主機管理系統(tǒng)
- 開放平臺
- WIKI程序與應用
- 美國十大主機
FTP
FTP 是 File Transfer Protocol(文件傳輸協(xié)議)的簡稱,用于互聯(lián)網(wǎng)上文件的雙向傳輸。做網(wǎng)站的時候,一般會利用FTP將網(wǎng)頁上傳到服務器,所以FTP軟件是站長必備的工具之一。
FTP協(xié)議[ ]
TCP/IP協(xié)議中,F(xiàn)TP標準命令TCP端口號為21,Port方式數(shù)據(jù)端口為20。FTP協(xié)議的任務是從一臺計算機將文件傳送到另一臺計算機,它與這兩臺計算機所處的位置、聯(lián)接的方式、甚至是是否使用相同的操作系統(tǒng)無關(guān)。假設兩臺計算機通過ftp協(xié)議對話,并且能訪問Internet,你可以用ftp命令來傳輸文件。每種操作系統(tǒng)使用上有某一些細微差別,但是每種協(xié)議基本的命令結(jié)構(gòu)是相同的。
數(shù)據(jù)傳輸模式[ ]
- 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ù),使文件變得不能用。(在大多數(shù)計算機上,ASCII方式一般假設每一字符的第一有效位無意義,因為ASCII字符組合不使用它。如果你傳輸二進制文件,所有的位都是重要的。)如果你知道這兩臺機器是同樣的,則二進制方式對文本文件和數(shù)據(jù)文件都是有效的。
PHP網(wǎng)站程序有些是經(jīng)過zend加密的,這些程序必須要用二進制模式傳輸,在上傳之前一定要將FTP軟件的數(shù)據(jù)模式修改為二進制,否則會出錯。
主動和被動模式[ ]
FTP有兩種使用模式:主動(PORT)和被動(Passive)。主動模式要求客戶端和服務器端同時打開并且監(jiān)聽一個端口以建立連接。在這種情況下,客戶端由于安裝了防火墻會產(chǎn)生一些問題。所以,創(chuàng)立了被動模式。被動模式只要求服務器端產(chǎn)生一個監(jiān)聽相應端口的進程,這樣就可以繞過客戶端安裝了防火墻的問題。
一個主動模式的FTP連接建立要遵循以下步驟:
客戶端打開一個隨機的端口(端口號大于1024,在這里,我們稱它為x),同時一個FTP進程連接至服務器的21號命令端口。此時,源端口為隨機端口x,在客戶端,遠程端口為21,在服務器。
客戶端開始監(jiān)聽端口(x+1),同時向服務器發(fā)送一個端口命令(通過服務器的21號命令端口),此命令告訴服務器客戶端正在監(jiān)聽的端口號并且已準備好從此端口接收數(shù)據(jù)。這個端口就是我們所知的數(shù)據(jù)端口。
服務器打開20號源端口并且建立和客戶端數(shù)據(jù)端口的連接。此時,源端口為20,遠程數(shù)據(jù)端口為(x+1)。
客戶端通過本地的數(shù)據(jù)端口建立一個和服務器20號端口的連接,然后向服務器發(fā)送一個應答,告訴服務器它已經(jīng)建立好了一個連接。