Atitit ftp原理与解决方案
?
?
?
?
Atitit ftp原理與解決方案
?
?
?
?
?
?
Deodeo sh shmayama ..search ftp..
?
1. http和ftp都只是通信協議,就是只管傳輸那一塊的,那為什么不能使用ftp來顯示網頁??1
1.1. 原則是是可以,瀏覽器下載從http和ftp下載是一樣的效果,然后本地渲染顯示html即可。。1
1.2. 最主要原因是性能原因(小文件http效率更高)1
1.3. ftp設計復雜度高1
1.4. 此外3.與防火墻工作不協調2
2. HTTP和FTP的區別2
2.1. 二、復雜點兒2
2.1.1. 1.FTP2
3. ftp在傳輸小文件時候,效率較低3
?
1.?http和ftp都只是通信協議,就是只管傳輸那一塊的,那為什么不能使用ftp來顯示網頁??
1.1.?原則是是可以,瀏覽器下載從http和ftp下載是一樣的效果,然后本地渲染顯示html即可。。
最主要的區別是ftp協議比http協議復雜,因為ftp要面臨多種文檔以及體積比較大,所以協議控制比較復雜。。
而網頁,往往體積較小,格式單一。。所以使用了專門發明了http協議來做這個事情。轉用協議當然要比通用的性能高,速度快,但是適用領域小。。
?
1.2.?最主要原因是性能原因(小文件http效率更高)
1.3.?ftp設計復雜度高
FTP和HTTP處于OSI同一層?。但是,FTP在開始握手和登陸較為復雜,一旦開始傳輸效率明顯比HTTP高。FTP的設計思想在于分開的控制連接和傳輸連接,這和HTTP完全不同。
1.4.?此外3.與防火墻工作不協調
在文件傳輸協議(FTP)誕生在網絡地址轉換(NAT)和防火墻之前,那時的網絡還不存在惡意攻擊。今天大多數最終用戶的IPv4地址已不可路由,這是因為防火墻的使用和IPv4地址的短缺。
2.?HTTP和FTP的區別
?
2.1.?二、復雜點兒
2.1.1.?1.FTP
2.1.1.1.?(1)FTP比HTTP復雜
FTP和HTTP一樣都是Internet上廣泛使用的協議,用來在兩臺計算機之間互相傳送文件。相比于HTTP,FTP協議要復雜得多。復雜的原因,是因為FTP協議要用到兩個TCP連接,一個是命令鏈路,用來在FTP客戶端與服務器之間傳遞命令;另一個是數據鏈路,用來上傳或下載數據。
2.1.1.2.?(2)FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。
PORT(主動)方式的連接過程是:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。當需要傳送數據時,客戶端在命令鏈上用PORT命令告訴服務器:“我打開了XXXX端口,你過來連接我”。于是服務器從20端口向客戶端的XXXX端口發送連接請求,建立一條數據鏈路來傳送數據。
PASV(被動)方式的連接過程是:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。當需要傳送數據時,服務器在命令鏈上用PASV命令告訴客戶端:“我打開了XXXX端口,你過來連接我”。于是客戶端向服務器的XXXX端口發送連接請求,建立一條數據鏈路來傳送數據。
從上面可以看出,兩種方式的命令鏈路連接方法是一樣的,而數據鏈路的建立方法就完全不同。而FTP的復雜性就在于此。
?
3.?ftp在傳輸小文件時候,效率較低
.FTP協議效率低下
從FTP服務器上檢索一個文件,包含繁復的交換握手步驟:
客戶端建立到FTP服務器端控制端口的TCP?Socket鏈接,并等待TCP握手完成
客戶端等待服務器端發送回執
客戶端向服務器端發送用戶名并等待響應
客戶端向服務器端發送密碼并等待響應
客戶端向服務器端發送SYST命令并等待響應
客戶端向服務器端發送TYPE?I命令并等待響應
如果用戶需要在服務器端切換目錄,客戶端仍然發送命令并等待響應
主動模式下,客戶端需要發送PORT命令到服務器端,然后等待響應(被動模式與主動模式相反)
建立數據傳輸鏈接(需要經過三次握手,建立一條TCP?Socket連接)
通過鏈接傳輸數據
客戶端等待服務器端從控制連接發送2xx指令,以確保數據傳輸成功
客戶端發送QUIT命令,并等待服務器響應
同樣的情形,我們來看看HTTP協議:
HTTP客戶端向HTTP服務器端建立一條TCP?Socket連接
HTTP客戶端向HTTP服務器端發送GET命令,包含URL、HTTP協議版本、虛擬主機名等等,并等待響應
HTTP服務器端的響應包含了所有想要的數據,完成!
傳輸一個文件,FTP需要往復10次,而HTTP只需要2次!
3.1.?傳輸協議
編輯
FTP是一個8位的客戶端-服務器協議,能操作任何類型的文件而不需要進一步處理,就像MIME或Unicode一樣。但是,FTP有著極高的延時,這意味著,從開始請求到第一次接收需求數據之間的時間,會非常長;并且不時的必須執行一些冗長的登陸進程
?
?
4.?支持模式??FTP支持兩種模式:Standard (PORT方式,主動方式),Passive (PASV,被動方式)。
?
編輯
FTP支持兩種模式:Standard (PORT方式,主動方式),Passive (PASV,被動方式)。
Port模式
FTP?客戶端首先和服務器的TCP 21端口建立連接,用來發送命令,客戶端需要接收數據的時候在這個通道上發送PORT命令。PORT命令包含了客戶端用什么端口接收數據。在傳送數據的時候,服務器端通過自己的TCP 20端口連接至客戶端的指定端口發送數據。FTP server必須和客戶端建立一個新的連接用來傳送數據。
Passive模式
建立控制通道和Standard模式類似,但建立連接后發送Pasv命令。服務器收到Pasv命令后,打開一個臨時端口(端口號大于1023小于65535)并且通知客戶端在這個端口上傳送數據的請求,客戶端連接FTP服務器此端口,然后FTP服務器將通過這個端口傳送數據。
很多防火墻在設置的時候都是不允許接受外部發起的連接的,所以許多位于防火墻后或內網的FTP服務器不支持PASV模式,因為客戶端無法穿過防火墻打開FTP服務器的高端端口;而許多內網的客戶端不能用PORT模式登陸FTP服務器,因為從服務器的TCP 20無法和內部網絡的客戶端建立一個新的連接,造成無法工作
?
參考資料
HTTP和FTP的區別 - 蘋果園 - 博客頻道 - CSDN.NET.html
文件傳輸協議(FTP)必將消亡 - 開源中國社區.html
?
作者::?綽號:老哇的爪子?(?全名::Attilax?Akbar?Al?Rapanui?阿提拉克斯?阿克巴?阿爾?拉帕努伊?)?
漢字名:艾提拉(艾龍),???EMAIL:1466519819@qq.com
轉載請注明來源:?http://www.cnblogs.com/attilax/
Atiend
?
?
轉載于:https://www.cnblogs.com/attilax/p/5954698.html
總結
以上是生活随笔為你收集整理的Atitit ftp原理与解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查看博客模板的css代码
- 下一篇: 谭浩强C语言程序设计 学习辅导练习题