功能 | 說明 |
---|---|
接收請求 (Request) | 處理瀏覽器發送的 HTTP/HTTPS 請求 |
回應內容 (Response) | 回傳靜態檔案(HTML、CSS、JS)或動態內容(API、資料庫資料) |
管理連線 | 控制多個使用者同時連線、處理並發請求 |
安全性 | 支援 HTTPS、權限控管、防止惡意請求 |
日誌紀錄(Log) | 紀錄誰訪問了什麼頁面,方便除錯與統計 |
Web Server:主要負責處理靜態資源(HTML、CSS、圖片、JS)。
例:Nginx、Apache、LiteSpeed。
Application Server:負責動態內容(例如 Python Flask、Node.js Express、PHP)。
通常 Web Server 會把動態請求轉給 Application Server 處理,再回傳結果。
常見組合:
Nginx + Node.js (或 Flask)
Apache + PHP
Nginx + Django
伺服器 | 特點 | 使用情境 |
---|---|---|
Apache HTTP Server | 歷史悠久、模組多、設定靈活 | 傳統企業、WordPress 網站 |
Nginx | 輕量、高效能、反向代理能力強 | 現代 Web 應用、API Gateway |
LiteSpeed | 相容 Apache 配置、效能高 | 商業網站、高流量網站 |
Caddy | 自動 HTTPS(Let's Encrypt)、設定簡單 | 開發者測試、小型專案 |
Node.js(Express / NestJS) | 可直接作為伺服器執行 JS 程式 | 現代全端開發、API 服務 |
Python(Flask / Django) | 用 WSGI 架構提供動態網頁 | 資料應用、後端服務 |
瀏覽器 (Client)
↓ 請求 HTTP GET /index.html
[ Web Server ]
↓ 讀取檔案或轉給應用程式
[ Application Server / Framework ]
↓ 查詢資料庫或生成內容
↑ 回傳 HTML / JSON 給 Web Server
↑ Web Server 回傳 Response 給瀏覽器
HTTP (HyperText Transfer Protocol):網頁傳輸協定。
HTTPS:HTTP over SSL/TLS,資料加密,保護使用者隱私。
常見由 Let's Encrypt 提供免費憑證。
類型 | 說明 |
---|---|
靜態網站 | 單純提供 HTML/CSS/JS,不需要後端(可用 GitHub Pages、Netlify) |
動態網站 | 有登入、資料庫、API(需應用伺服器,如 Node.js、Flask) |
API 伺服器 | 提供資料給前端(RESTful、GraphQL) |
反向代理 | Nginx/Caddy 轉發請求到多台應用伺服器(負載平衡) |