ftp是登錄協議嗎?
答:不是
FTP是在兩個計算機之間傳輸文件的協議。一般有兩種情形,一種是需要登錄的FTP文件服務器,另外一種FTP服務器是匿名的,它允許任何人進行訪問。
FTP的工作機制
FTP使用兩條TCP連接:一條用來控制,另一條用來數據傳輸。
用于控制的TCP連接主要在FTP的控制部分使用。例如:登錄用戶名和密碼的驗證,發送文件的名稱等。這個連接可以通過ASCII來發送請求和接受應答。(也就是通過命令的方式)該控制連接使用的默認端口是21。當發生GET,PUT以及文件瀏覽的時候,每次都會建立另外一個TCP連接(默認占用20端口)。這個TCP連接是用來傳輸數據的,當數據傳輸完畢的時候,這個TCP連接就會被斷開。
當FTP請求成功的時候,服務器也會返回響應,也有和HTTP類似的狀態碼來標識訪問操作的信息。
FTP支持兩種模式:
客戶端發送PORT命令,客戶端需要接收數據的時候在這個通道上發送PORT命令。 PORT命令包含了客戶端用什么端口接收數據。在傳送數據的時候,服務器端通過 20端口連接至客戶端的指定端口發送數據。 (從服務器向客戶端建立連接)
客戶端發送PASV命令,FTP服務器收到PASV命令后,隨機打開一個臨時端口,并且通知客戶端在這個端口上傳送數據的請求,客戶端連接FTP服務器此端口,然后FTP服務器將通過這個端口進行數據的傳送。(從客戶端向服務器建立連接)