Ftp協(xié)議:RFC959
命令和返回碼:
C–>S:命令
S–>C:返回碼
每一個(gè)Ftp發(fā)送之后,F(xiàn)tp服務(wù)器都會(huì)返回一個(gè)字符串,其中包括一個(gè)返回代碼和一串說明信息。這個(gè)返回碼主要是用于判斷命令是否被成功執(zhí)行了。除此之 外,還有一個(gè)非常重要的命令的返回。當(dāng)發(fā)送PASV之后,返回“227 Entering Passive Mode (127,0,0,1,4,18)”。這意味著在服務(wù)器上有一個(gè)端口被開放,他將為我們后面接著的數(shù)據(jù)傳輸作好準(zhǔn)備,但是我們?nèi)绾沃涝摱丝谔?hào)呢,就在 (127,0,0,1,4,18)中,前面四位指服務(wù)器的地址,關(guān)鍵是最后兩位,將最后第二位乘256再加上最后一位的值就是我們的端口號(hào),也就是 4*256+18。取得端口號(hào)之后我們就可以用socket連接到這里。這為我們后面的工作作好準(zhǔn)備了,因?yàn)槲覀兊娜〉昧斜恚蟼?,下載文件都要依靠它來 實(shí)現(xiàn)。
FTP命令:
灰色的命令一般很少使用,所以往往在具體實(shí)現(xiàn)中不被支持,所以可能返回的信息是“500 'xx': command not understood”。
命令 |
描述 |
ABOR |
中斷數(shù)據(jù)連接程序 |
ACCT |
系統(tǒng)特權(quán)帳號(hào) |
ALLO |
為服務(wù)器上的文件存儲(chǔ)器分配字節(jié) |
APPE |
添加文件到服務(wù)器同名文件 |
CDUP
|
改變服務(wù)器上的父目錄 |
CWD
|
改變服務(wù)器上的工作目錄 |
DELE |
刪除服務(wù)器上的指定文件 |
HELP |
返回指定命令信息 |
LIST |
如果是文件名列出文件信息,如果是目錄則列出文件列表 |
MODE |
傳輸模式(S=流模式,B=塊模式,C=壓縮模式) |
MKD |
在服務(wù)器上建立指定目錄 |
NLST |
列出指定目錄內(nèi)容 |
NOOP |
無動(dòng)作,除了來自服務(wù)器上的承認(rèn) |
PASS |
系統(tǒng)登錄密碼 |
PASV |
請(qǐng)求服務(wù)器等待數(shù)據(jù)連接 |
PORT |
IP 地址和兩字節(jié)的端口 ID |
PWD |
顯示當(dāng)前工作目錄 |
QUIT |
從 FTP 服務(wù)器上退出登錄 |
REIN |
重新初始化登錄狀態(tài)連接 |
REST |
由特定偏移量重啟文件傳遞 |
RETR |
從服務(wù)器上找回(復(fù)制)文件 |
RMD |
在服務(wù)器上刪除指定目錄 |
RNFR |
對(duì)舊路徑重命名 |
RNTO |
對(duì)新路徑重命名 |
SITE |
由服務(wù)器提供的站點(diǎn)特殊參數(shù) |
SIZE〈FILENAME〉 |
文件大小,執(zhí)行成功返回 213 |
SMNT |
掛載指定文件結(jié)構(gòu) |
STAT |
在當(dāng)前程序或目錄上返回信息 |
STOR |
儲(chǔ)存(復(fù)制)文件到服務(wù)器上 |
STOU |
儲(chǔ)存文件到服務(wù)器名稱上 |
STRU |
數(shù)據(jù)結(jié)構(gòu)(F=文件,R=記錄,P=頁面) |
SYST |
返回服務(wù)器使用的操作系統(tǒng) |
TYPE |
數(shù)據(jù)類型(A=ASCII,E=EBCDIC,I=binary) |
FTP返回碼/響應(yīng)碼:
響應(yīng)代碼 |
解釋說明 |
110 |
新文件指示器上的重啟標(biāo)記 |
120 |
服務(wù)器準(zhǔn)備就緒的時(shí)間(分鐘數(shù)) |
125 |
打開數(shù)據(jù)連接,開始傳輸 |
150 |
打開連接 |
200 |
成功 |
202 |
命令沒有執(zhí)行 |
211 |
系統(tǒng)狀態(tài)回復(fù) |
212 |
目錄狀態(tài)回復(fù) |
213 |
文件狀態(tài)回復(fù) |
214 |
幫助信息回復(fù) |
215 |
系統(tǒng)類型回復(fù) |
220 |
服務(wù)就緒 |
221 |
退出網(wǎng)絡(luò) |
225 |
打開數(shù)據(jù)連接 |
226 |
結(jié)束數(shù)據(jù)連接 |
227 |
進(jìn)入被動(dòng)模式(IP 地址、ID 端口) |
230 |
登錄完成 |
250 |
文件行為完成 |
257 |
路徑名建立 |
331 |
要求密碼 |
332 |
要求帳號(hào) |
350 |
文件行為暫停 |
421 |
服務(wù)關(guān)閉 |
425 |
無法打開數(shù)據(jù)連接 |
426 |
結(jié)束連接 |
450 |
文件不可用 |
451 |
遇到本地錯(cuò)誤 |
452 |
磁盤空間不足 |
500 |
無效命令 |
501 |
錯(cuò)誤參數(shù) |
502 |
命令沒有執(zhí)行 |
503 |
錯(cuò)誤指令序列 |
504 |
無效命令參數(shù) |
530 |
未登錄網(wǎng)絡(luò) |
532 |
存儲(chǔ)文件需要帳號(hào) |
550 |
文件不可用 |
551 |
不知道的頁類型 |
552 |
超過存儲(chǔ)分配 |
553 |
文件名不允許 |