首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

HTTP vs FTP:大一新生也能看懂的區別

     編輯:程式設計綜合問答

兩者皆為應用層協議,但設計目的、操作模型、典型場景截然不同。

核心對比表

維度HTTP (HyperText Transfer Protocol)FTP (File Transfer Protocol)
全稱超文本傳輸協議檔案傳輸協議
設計初衷發布/接收 HTML 網頁、REST API 資源雙向傳輸檔案 (上傳/下載/管理)
連接模型無狀態、請求-回應、通常單連接 (HTTP/1.1 keep-alive)有狀態、雙通道:控制連接 (21) + 資料連接 (20/隨機)
認證Header (Basic/Bearer/Cookie/OAuth)USER/PASS 指令 (明文,或 FTPS 加密)
防火牆/NAT 穿透極易 (單埠口 80/443)困難 (需開啟被動模式、資料埠口範圍)
瀏覽器支援原生完美支援Chrome/Firefox 已棄用 `ftp://` 協議處理
典型場景網頁瀏覽、API 呼叫、CDN 分發、WebSocket 升級伺服器備份、大檔案分發、舊系統整合、IoT 固件更新
安全版本HTTPS (TLS)FTPS (TLS/SSL)、SFTP (SSH 協議,非 FTP)

通俗類比

  • HTTP = 圖書館閱覽室:你索取某本書 (URL),管理員拿給你看,看完歸還,不記住你是誰。
  • FTP = 自助倉儲:你有鑰匙 (帳號密碼),可進倉庫搬箱子 (上傳/下載/刪除/重命名),倉庫記住你租了哪個格子。

現代建議

  • 對外公開資源、API → **HTTPS** (唯一選擇)。
  • 內部大檔案傳輸 → **SFTP** (SSH 加密、單埠口、防火牆友好),勿用傳統 FTP/FTPS。
  • 瀏覽器直接下載 → HTTPS + `Content-Disposition: attachment`。

考試重點:HTTP 無狀態/單通道/港口 80;FTP 有狀態/雙通道/港口 20/21/被動模式/防火牆難。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved