ftp是一個應用層的文件傳輸協議。在一個典型的ftp會話中,用戶能夠一臺主機箱另外一臺主機傳輸(或接受來自遠程主機)的文件。服務器
用戶經過一個ftp用戶代理與ftp交互tcp
1.該用戶首先要提供遠程主機的主機名,使本地主機的ftp客戶端進程創建一個到遠程主機ftp服務器進程的tcp鏈接代理
2.接着用戶須要提供用戶名和密碼做爲ftp命令的一部分在該tcp鏈接上傳送進程
若用戶名和密碼是正確的,則用戶就能夠將存放在本地文件系統中的一個或多個文件複製到遠程文件系統中(反之亦然)。get
相同點:服務器端
1.二者都是應用層上的文件傳輸協議ftp
2.二者都是運行在tcp上的file
區別:請求
1.ftp使用了兩個並行的tcp鏈接,http只有一個tcp鏈接。並行
ftp是用的兩個tcp鏈接,一個是控制鏈接,一個是數據鏈接。
控制鏈接用於在兩主機之間傳送控制信息。如用戶名標識、口令、「存放(put)」和「獲取(get)」文件的命令等。
數據鏈接用於實際傳輸一個文件。
http協議是在傳輸文件的同一個tcp鏈接中發送請求和響應首部行的。
用戶主機與遠程主機開始一個ftp會話時,ftp的客戶端首先在服務器21號端口與服務器端發起一個用於控制的tcp鏈接。客戶端能夠經過該控制鏈接發送控制命令
當服務器端從控制鏈接收到一個文件傳輸的命令後,就發起一個到客戶端的數據鏈接用於傳輸文件,文件傳輸完畢後該數據鏈接就關閉了,可是控制鏈接不關閉。
當有一個新的文件傳輸命令後,就又創建一個新的數據鏈接。
USER username :向服務器發送用戶標識
PASS password:用於向服務器發送用戶口令
LIST: 向服務器請求當前遠程目錄中的全部文件列表,該文件列表是通過一個新的數據鏈接返回給客戶端的
RETR filename : 獲取文件
STOR filename: 向服務器端上傳文件