ftp與http對比

許多站點,比如facebook或一些博客等都允許用戶上傳或下載文件,比如論壇或博客系統的圖片。在這種情況下,通常有兩種選擇上傳文件到服務器,那就是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更快。




說明:
本文來自網絡,由於這是很久之前的筆記,所以忘了出處,如有問題,聯繫我。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章