HTTp和ftp的區別

菜雞03號發表於2016-10-18

許多站點,比如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更快。

相關文章