網頁伺服器#
網頁伺服器接收用戶端的 HTTP/HTTPS 請求,回傳網頁內容(HTML、CSS、JS、圖片等)。
Apache vs. IIS#
| 特性 | Apache | IIS |
|---|---|---|
| 開發者 | Apache Software Foundation | Microsoft |
| 運行平台 | 跨平台(Linux/Windows) | 僅 Windows |
| 授權 | 開源免費 | Windows Server 內建 |
| 模組擴充 | mod_rewrite、mod_ssl 等 | ISAPI 篩選器 |
| 設定方式 | 文字檔(httpd.conf) | GUI + 設定檔 |
| 適用場景 | LAMP 堆疊、通用用途 | .NET 應用程式 |
補充: 除了 Apache 和 IIS,Nginx 因高效能與反向代理能力,已成為目前市占率最高的網頁伺服器之一。
SSL 伺服器與數位憑證#
SSL/TLS 為網路通訊提供加密、身分驗證與資料完整性保護。
HTTPS 連線建立流程#
sequenceDiagram
participant C as 瀏覽器
participant S as 網頁伺服器
C->>S: Client Hello(支援的加密套件)
S->>C: Server Hello + 數位憑證
C->>C: 驗證憑證(CA 簽章)
C->>S: 以公開金鑰加密 Pre-Master Secret
S->>S: 以私密金鑰解密
Note over C,S: 雙方用 Pre-Master Secret 產生對稱金鑰
C->>S: 以對稱金鑰加密傳輸資料
S->>C: 以對稱金鑰加密傳輸資料對稱金鑰 vs. 公開金鑰加密#
| 特性 | 對稱金鑰加密 | 公開金鑰加密 |
|---|---|---|
| 金鑰數量 | 一把(加解密相同) | 兩把(公鑰 + 私鑰) |
| 運算速度 | 快 | 慢 |
| 安全性 | 金鑰交換困難 | 金鑰交換安全 |
| 代表演算法 | AES、DES | RSA、ECC |
| 用途 | 大量資料加密 | 金鑰交換、數位簽章 |
重點: SSL/TLS 實際上結合兩種加密——先用公開金鑰加密安全交換對稱金鑰,再用對稱金鑰加密傳輸資料,兼顧安全性與效能。
數位憑證#
數位憑證由憑證授權機構(CA) 簽發,用於證明伺服器的身分。
| 憑證類型 | 驗證內容 | 信任程度 | 適用場景 |
|---|---|---|---|
| DV(Domain Validation) | 僅驗證網域所有權 | 基本 | 部落格、小型網站 |
| OV(Organization Validation) | 驗證組織身分 | 中等 | 企業官網 |
| EV(Extended Validation) | 嚴格驗證組織身分 | 最高 | 銀行、電商 |
FTP 伺服器#
FTP(File Transfer Protocol) 用於在用戶端與伺服器間傳輸檔案。
| 模式 | 說明 |
|---|---|
| 主動模式(Active) | 伺服器主動連回用戶端的資料埠 |
| 被動模式(Passive) | 用戶端主動連線至伺服器指定的資料埠 |
注意: FTP 以明文傳輸帳密與資料,安全環境建議使用 SFTP(基於 SSH)或 FTPS(基於 SSL/TLS)替代。
網頁應用程式伺服器#
網頁應用程式伺服器負責執行伺服器端的商業邏輯,處於網頁伺服器與資料庫之間。
graph LR
A[瀏覽器] -->|HTTP| B[網頁伺服器<br/>Apache / IIS]
B -->|轉發動態請求| C[應用程式伺服器<br/>Tomcat / IIS]
C -->|SQL 查詢| D[資料庫伺服器]
D -->|回傳結果| C
C -->|產生 HTML| B
B -->|回應| AJava EE vs. .NET Framework#
| 特性 | Java EE | .NET Framework |
|---|---|---|
| 開發語言 | Java | C#、VB.NET |
| 運行平台 | 跨平台(JVM) | 主要 Windows |
| 應用伺服器 | Tomcat、WildFly | IIS |
| 適用場景 | 大型企業系統、跨平台需求 | Windows 生態系整合 |
資料庫伺服器#
資料庫伺服器提供結構化資料的儲存、查詢與管理服務。
RDBMS 比較#
RDBMS(關聯式資料庫管理系統) 以資料表組織資料,透過 SQL 進行操作。
| 產品 | 授權 | 特點 | 適用場景 |
|---|---|---|---|
| Oracle | 商業 | 功能最齊全、高可用 | 大型企業、金融 |
| SQL Server | 商業 | 與 .NET 深度整合 | Windows 生態系 |
| MySQL | 開源/商業 | 輕量高效 | Web 應用、LAMP |
| PostgreSQL | 開源 | 功能豐富、標準相容 | 複雜查詢、GIS |
VPN 伺服器#
VPN(Virtual Private Network) 在公共網路上建立加密通道,實現安全的遠端存取或站點連線。
IPSec VPN vs. SSL-VPN#
| 特性 | IPSec VPN | SSL-VPN |
|---|---|---|
| 運作層級 | OSI 第 3 層(網路層) | OSI 第 4-7 層 |
| 用戶端需求 | 需安裝 VPN 用戶端 | 僅需瀏覽器(部分場景) |
| 存取範圍 | 全網段存取 | 可限定特定應用 |
| 設定複雜度 | 較高 | 較低 |
| 適用場景 | 站點對站點(Site-to-Site) | 遠端使用者存取 |
graph LR
subgraph 遠端使用者
A[筆電]
end
subgraph 網際網路
B[加密通道]
end
subgraph 企業網路
C[VPN 伺服器]
D[內部資源]
end
A -->|SSL-VPN| B --> C --> D技巧: 若僅需讓遠端員工存取特定 Web 應用,SSL-VPN 部署更簡便;若需完整的站點對站點互連,IPSec VPN 更適合。