兩者皆為應用層協議,但設計目的、操作模型、典型場景截然不同。
| 維度 | 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 無狀態/單通道/港口 80;FTP 有狀態/雙通道/港口 20/21/被動模式/防火牆難。