FTP 協議和 HTTP 協議的12點比較(文件上傳/下載)

fmms 12年前發布 | 26K 次閱讀 文件上傳

    許多站點,比如非死book或一些博客等都允許用戶上傳或下載文件,比如論壇或博客系統的圖片。在這種情況下,通常有兩種選擇上傳文件到服務器,那就是FTP協議和HTTP協議。


    以下列出了一些兩者的不同點:


 

1、HTTP協議是用來瀏覽網站的,而FTP是用來訪問和傳輸文件的,FTP文件傳輸有點批量上傳和維護網站的意思,而HTTP文件傳輸更多的是為終端用戶提供文件傳輸,比如電影、圖片、音樂之類。


 

2、HTTP 和 FTP 客戶端:通常的HTTP客戶端就是瀏覽器,而FTP服務可以通過命令行或者用戶自有的圖形界面客戶端。


3、HTTP 頭:HTTP 頭包含了 metadata ,比如說最后更改的日期、編碼方式、服務器名稱版本還有其他的一些信息,而這些在FTP中是不存在的。


4、FTP要比HTTP早出現10年左右。


5、數據格式:FTP能傳輸ACSII數據或者二進制格式的數據,而HTTP只用二進制格式。


6、HTTP中的流水線:HTTP支持流水線,這就意味著客戶端可以在上一個請求處理完之前,發出下一個請求,其結果就是多次請求數據之前省掉了部分服務器客戶端往返時延。而FTP并沒有這項支持。


7、HTTP中的動態端口:FTP一個最大的問題就是它使用兩個連接,第一個連接用來發送控制指令,當接受或者發送數據的時候,又打開第二個TCP連接。而HTTP在雙向傳輸中使用動態端口。


8、HTTP中的持久連接:對一個HTTP會話來講,客戶端可以維護一個單個的連接并使用它進行任意數量的數據傳輸。FTP每次有數據的需要時都創建一個新的連接。重復的創建新的連接帶來的體驗并不好,因為每次創建連接都必須讓雙方握手驗證,這消耗了很多時間。


9、HTTP中的壓縮算法:HTTP提供了一個在一些壓縮算法中客戶端和服務器共同協商選擇的辦法。其中gzip可以說是最有影響力的一種,而FTP中并不存在這種復雜的算法。


10、HTTP支持代理:HTTP一個很大的特點就是支持代理,這種功能是構建在協議里的,而FTP并不支持。


11、FTP也能脫穎而出的一點是這個協議是直接面向文件級別的。這以為著FTP有例如可以通過命令列出遠程服務器上的目錄列表,而HTTP沒有這個概念。


12、速度:可能最通常的問題了:哪一個傳輸更快?

    什么使FTP服務更快?

    1、沒有在發出的數據中加入meta-data,僅傳輸原二進制文件。

    2、沒有過度的分塊編碼

    什么使HTTP服務更快?

    1、重用已存在的持久連接,從而有更好的TCP表現。

    2、流水線的支持使得從同一個服務器上請求多個文件更快。

    3、自動的壓縮機制使得傳輸的數據更少。

    4、沒有命令/應答機制最大限度的減少了往返時延。

 

總結:當然最終的結果會因具體的情況而異,但我想說的是,單次傳輸一個靜態的文件,很難衡量兩者的區別對單個的小文件來說,FTP傳輸更快,當傳輸多個文件時,HTTP更快。


原文鏈接OSChina.NET 編譯

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!