http tcp
許多站點,比如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更快
相關文章
- HTTP、Socket與TCPHTTPTCP
- UDP和TCP以及HTTPUDPTCPHTTP
- tcp和http的區別TCPHTTP
- HTTP與UDP/TCP區別HTTPUDPTCP
- TCP|你真的懂 HTTP 嗎?TCPHTTP
- 筆記:網路基礎TCP、HTTP、HTTPS(HTTP+SSL)筆記TCPHTTP
- 網路協議 - TCP/IP、HTTP、HTTPS、HTTP2.0協議TCPHTTP
- http tcp udp json 接收測試HTTPTCPUDPJSON
- TCP/IP、HTTP和Socket總結TCPHTTP
- tcp 實現簡單http 問題TCPHTTP
- 網路分層TCP/IP 與HTTPTCPHTTP
- Tcp, WebSocket 和 http 之間的通訊TCPWebHTTP
- TCP、HTTP和Node.js的那些事TCPHTTPNode.js
- http、socket、tcp的區別和聯絡?HTTPTCP
- Node和http:一本通【附tcp實現http小程式碼】HTTPTCP
- tcp/ip和http的區別和聯絡TCPHTTP
- TCP、UDP、HTTP及Socket的簡單講解TCPUDPHTTP
- 重識TCP/IP協議族與HTTP基礎TCP協議HTTP
- 與HTTP關係密切的協議:IP、TCP、DNSHTTP協議TCPDNS
- TCP/IP、HTTP、socket 這些,你真的瞭解嗎?TCPHTTP
- HAproxy企業應用,TCP/HTTP動靜分離TCPHTTP
- [HTTP 系列] 第 1 篇 —— 從 TCP/UDP 到 DNS 解析HTTPTCPUDPDNS
- 一文串聯 HTTP、TCP、IP、乙太網HTTPTCP
- 終於有人把tcp、http、rpc和grpc總結完整了TCPHTTPRPC
- 基於TCP/UDP的Socket程式設計,HTTP/HTTPS協議TCPUDP程式設計HTTP協議
- 注意!是TCP不是HTTP的3次握手與4次揮手(#...#)TCPHTTP
- 談談surging引擎的tcp、http、ws協議和如何容器化部署TCPHTTP協議
- 基於tcp的http應用,斷點續傳,範圍請求TCPHTTP斷點
- Go HTTP 重用底層 TCP 連線需要注意的關鍵點GoHTTPTCP
- TCP 的 Keepalive 和 HTTP 的 Keep-Alive 是一個東西嗎?TCPHTTPKeep-Alive
- 您可知道如何透過`HTTP2`實現TCP的內網穿透???HTTPTCP內網穿透
- HTTP / 3用UDP替換TCP以提高網路速度和可靠性 - thenewstackHTTPUDPTCP
- (圖解 HTTP)一篇文章帶你深入理解 IP、TCP 和 DNS圖解HTTPTCPDNS
- 一條HTTP請求的生命週期(二)-- TCP, 本文基於 RFC793HTTPTCP
- 小哥哥,小姐姐,我有一份tcp、http面試指南你要嗎?TCPHTTP面試
- TCPTCP
- 【TCP/IP】TCP詳解筆記TCP筆記
- 下一代HTTP底層協議將棄用TCP協議 改用QUIC技術HTTP協議TCPUI
- 網路基礎:TCP(3):TCP沾包TCP