返回文章列表

HTTP vs. HTTPS:傳輸協定的差異

12 分鐘
網路

HTTP vs. HTTPS:傳輸協定的差異

HTTP 和 HTTPS 都是用於客戶端和伺服器之間傳輸資料的協定,差別在於 HTTPS 多了一層加密。


什麼是 HTTP

HTTP (HyperText Transfer Protocol) 是網路上最基本的資料傳輸協定,定義了客戶端 (通常是瀏覽器) 和伺服器之間如何請求和回應資料。

HTTP 的請求和回應都是明文傳輸,沒有任何加密。任何可以監聽網路封包的人,都可以直接看到傳輸的內容,包括帳號、密碼、個人資料。


什麼是 HTTPS

HTTPS (HTTP Secure) 是 HTTP 加上 TLS (Transport Layer Security) 加密層的版本。

TLS 在 HTTP 之下運作,確保:

  • 加密:傳輸的資料被加密,第三方無法讀取內容
  • 完整性:資料在傳輸過程中沒有被篡改
  • 身份驗證:確認你連接的是真正的伺服器,而不是冒充者

HTTPS 使用 SSL 憑證 (TLS 憑證) 來驗證伺服器的身份。憑證由受信任的第三方機構 (Certificate Authority,CA) 簽發。


TLS Handshake

建立 HTTPS 連線時,在傳輸資料之前,客戶端和伺服器需要先完成 TLS Handshake (握手),協商加密方式並驗證身份。

簡化的流程:

握手完成後,後續的所有 HTTP 通訊都用這個 Session Key 加密傳輸。


HTTP vs. HTTPS 差異

HTTPHTTPS
全名HyperText Transfer ProtocolHTTP Secure
預設埠號80443
加密TLS 加密
資料完整性無保護有保護
身份驗證SSL 憑證驗證
速度略快 (無加密開銷)現代硬體下幾乎無差異
SEO較差Google 偏好 HTTPS

為什麼現在都要用 HTTPS

安全性

HTTP 是明文傳輸,在公共 Wi-Fi 等不安全的網路環境下,任何人都可以用封包捕獲工具 (例如 Wireshark) 攔截並讀取傳輸的內容。

常見的攻擊:

  • 中間人攻擊 (Man-in-the-Middle Attack):攻擊者在客戶端和伺服器之間攔截通訊,讀取或篡改資料
  • 竊聽 (Eavesdropping):被動監聽網路流量,取得帳號密碼等敏感資訊

HTTPS 的加密讓這些攻擊無效,即使封包被攔截,攻擊者也無法解讀內容。

瀏覽器警告

現代瀏覽器對 HTTP 網站顯示「不安全」警告,對使用者造成信任問題。

SEO

Google 明確表示 HTTPS 是搜尋排名的因素之一,HTTP 網站在搜尋結果中會處於劣勢。

功能限制

某些瀏覽器 API 只在 HTTPS 下才能使用:

  • Service Worker
  • Geolocation API
  • Push Notifications
  • Camera / Microphone API

憑證取得

過去 SSL 憑證需要付費,現在 Let's Encrypt 提供免費的憑證,大多數的主機服務也提供一鍵申請憑證的功能,已經沒有理由不使用 HTTPS。


總結

  • HTTP:明文傳輸,無加密,有安全風險
  • HTTPS:HTTP + TLS 加密,保護資料的機密性、完整性和身份驗證
  • TLS Handshake 在連線建立時協商加密方式,現代硬體下幾乎沒有額外的效能開銷
  • 現代網站應該全面使用 HTTPS,憑證可以透過 Let's Encrypt 免費取得