FTP - 協議原理和狀態碼
一、Ftp原理
FTP Transfer Protocol 件傳輸協議的縮寫,FTP會話時包含了兩個通道,一個叫控制通道,一個叫資料通道;如下圖:
控制通道:控制通道是和FTP伺服器進行溝通的通道,連線FTP,傳送FTP指令都是通過控制通道來完成的, PI稱為控制連線
資料通道:資料通道是和FTP伺服器進行檔案傳輸或者列表的通道。
FTP協議中,控制連線均有客戶端發起,而資料連線有兩種工作方式:PORT方式和PASV方式,DTP稱為資料連線
PASV模式(被動方式)
在建立控制通道的時候和PORT模式類似,當客戶端通過這個通道傳送 PASV 命令的時候,FTP server開啟一個位於1024和5000之間的隨機埠並且通知客戶端在這個埠上傳送資料的請求,然後FTP server 將通過這個埠進行資料的傳送,這個時候FTP server不再需要建立一個新的和客戶端之間的連線傳送資料。
PORT模式(主動方式)
FTP 客戶端首先和FTP Server的TCP 21埠建立連線,通過這個通道傳送命令,客戶端需要接收資料的時候在這個通道上傳送PORT命令。 PORT命令包含了客戶端用什麼埠(一個大於1024的埠)接收資料。在傳送資料的時候,伺服器端通過自己的TCP 20埠傳送資料。 FTP server必須和客戶端建立一個新的連線用來傳送資料。
二、Ftp協議碼
1xx - 肯定的初步答覆
這些狀態程式碼指示一項操作已經成功開始,但客戶端希望在繼續操作新命令前得到另一個答覆。
110 重新啟動標記答覆。
120 服務已就緒,在 nnn 分鐘後開始。
125 資料連線已開啟,正在開始傳輸。
150 檔案狀態正常,準備開啟資料連線。
2xx - 肯定的完成答覆
一項操作已經成功完成。客戶端可以執行新命令。
200 命令確定。
202 未執行命令,站點上的命令過多。
211 系統狀態,或系統幫助答覆。
212 目錄狀態。
213 檔案狀態。
214 幫助訊息。
215 NAME 系統型別,其中,NAME 是 Assigned Numbers 文件中所列的正式系統名稱。
220 服務就緒,可以執行新使用者的請求。
221 服務關閉控制連線。如果適當,請登出。
225 資料連線開啟,沒有進行中的傳輸。
226 關閉資料連線。請求的檔案操作已成功(例如,傳輸檔案或放棄檔案)。
227 進入被動模式 (h1,h2,h3,h4,p1,p2)。
230 使用者已登入,繼續進行。
250 請求的檔案操作正確,已完成。
257 已建立“PATHNAME”。
3xx - 肯定的中間答覆
該命令已成功,但伺服器需要更多來自客戶端的資訊以完成對請求的處理。
331 使用者名稱正確,需要密碼。
332 需要登入帳戶。
350 請求的檔案操作正在等待進一步的資訊。
4xx - 瞬態否定的完成答覆
該命令不成功,但錯誤是暫時的。如果客戶端重試命令,可能會執行成功。
421 服務不可用,正在關閉控制連線。如果服務確定它必須關閉,將向任何命令傳送這一應答。
425 無法開啟資料連線。
426 Connection closed; transfer aborted.
450 未執行請求的檔案操作。檔案不可用(例如,檔案繁忙)。
451 請求的操作異常終止:正在處理本地錯誤。
452 未執行請求的操作。系統儲存空間不夠。
5xx - 永久性否定的完成答覆
該命令不成功,錯誤是永久性的。如果客戶端重試命令,將再次出現同樣的錯誤。
500 語法錯誤,命令無法識別。這可能包括諸如命令列太長之類的錯誤。
501 在引數中有語法錯誤。
502 未執行命令。
503 錯誤的命令序列。
504 未執行該引數的命令。
530 未登入。
532 儲存檔案需要帳戶。
550 未執行請求的操作。檔案不可用(例如,未找到檔案,沒有訪問許可權)。
551 請求的操作異常終止:未知的頁面型別。
552 請求的檔案操作異常終止:超出儲存分配(對於當前目錄或資料集)。
553 未執行請求的操作。不允許的檔名。
三、參考文件
http://justcoding.iteye.com/blog/835002
http://www.it165.net/admin/html/201308/1674.html
相關文章
- HTTP協議(三):狀態碼HTTP協議
- HTTP協議的狀態碼HTTP協議
- Http協議狀態碼總結HTTP協議
- 無狀態協議協議
- 常見的http協議狀態碼HTTP協議
- HTTP協議狀態碼的含義 (轉)HTTP協議
- HTTP協議狀態碼詳解(HTTP Status Code)HTTP協議
- 042-HTTP協議之方法與狀態碼HTTP協議
- HTTP協議常用Headers、方法Methods、狀態碼HTTP協議Header
- FTP協議詳解FTP協議
- Thrift原理分析(二)協議和編解碼協議
- 04 前端HTTP協議(圖解HTTP) 之 HTTP狀態碼前端HTTP協議圖解
- 常見HTTP/FTP/WebSockets狀態碼大全HTTPFTPWeb
- 淺談WebSocket協議、WS協議和WSS協議原理及關係Web協議
- [服務端與網路]http協議與http狀態碼服務端HTTP協議
- 密碼學系列之:線上證書狀態協議OCSP詳解密碼學協議
- HTTP協議無狀態,該怎麼解決?HTTP協議
- TCP協議、演算法和原理TCP協議演算法
- IIC 協議原理協議
- Raysync檔案傳輸協議(FTP)協議FTP
- 瞭解一下Http常見狀態碼、Http協議的工作特點和原理、Http請求Post與Get的區別HTTP協議
- 檔案傳輸協議(FTP)的安全性現狀你瞭解多少?協議FTP
- SAP Fiori和WebClient UI的有狀態和無狀態行為設計原理WebclientUI
- HTTP協議響應狀態碼(301、302、303的區別)HTTP協議
- php通過ftp協議上傳檔案PHPFTP協議
- IS-IS協議原理與配置協議
- DHCP協議和dhcpcd原始碼分析協議原始碼
- HTTP 狀態碼 和 git 命令HTTPGit
- HTTP協議---HTTP請求中的常用請求欄位和HTTP的響應狀態碼及響應頭HTTP協議
- 動態選路協議協議
- HTTP協議基本原理HTTP協議
- Zookeeper ZAB協議原理淺析協議
- TCP/IP協議原理【轉載】TCP協議
- XMPP協議的原理介紹協議
- HTTP狀態保持的原理HTTP
- 狀態碼
- CORS(跨來源資源共享協議) 與 http 302狀態CORS協議HTTP
- 【Linux入門】FTP協議與SFTP協議是什麼?兩者有什麼聯絡?LinuxFTP協議