2025年6月9日 星期一

[研究]Web Server 支援 HTTP/2 的條件?

[研究]Web Server 支援 HTTP/2 的條件? 

2025-06-09

ChatGPT 說:

Web Server 要支援 HTTP/2,需滿足以下條件:

🔧 一、Web Server 軟體本身要支援 HTTP/2

常見支援 HTTP/2 的 Web Server:

Web ServerHTTP/2 支援情況
Apache (httpd)自 2.4.17 起支援(需啟用 mod_http2)
Nginx自 1.9.5 起支援(需使用 OpenSSL 1.0.2+)
IIS自 Windows Server 2016 / Windows 10 起內建支援
LiteSpeed支援
Caddy預設支援
Tomcat需搭配 HTTP/2 upgrade handler 或 proxy 使用

📜 二、使用的 TLS/SSL 憑證(HTTPS)

  • 雖然 HTTP/2 在標準中不強制使用 TLS(即 HTTPS),但幾乎所有主要瀏覽器 都只在 HTTPS 連線上啟用 HTTP/2。
  • 所以:部署 HTTPS 是實務上啟用 HTTP/2 的必要條件。

🔗 三、OpenSSL 或類似加密函式庫版本(伺服器端)

某些 Web Server 需要依賴 OpenSSL,HTTP/2 支援需 OpenSSL 版本為:

  • 最低需 OpenSSL 1.0.2
  • 更佳為 OpenSSL 1.1.1 或 OpenSSL 3.x

⚙️ 四、瀏覽器與客戶端支援

  • 大部分現代瀏覽器(Chrome, Firefox, Edge, Safari)都支援 HTTP/2。
  • 但若用戶端不支援,伺服器會自動回退到 HTTP/1.1。
  • 敝人補充:詳見 https://caniuse.com/http2

✅ 五、伺服器設定是否有正確啟用 HTTP/2

例如:

  • Apache: 需加入 Protocols h2 http/1.1 並載入 mod_http2
  • Nginx: listen 443 ssl http2;
  • IIS: 只需確保是 Windows 10/Server 2016 以上版本,並啟用 HTTP/2

🧪 六、驗證方式

可以使用以下方式確認是否成功啟用 HTTP/2:

(完)

沒有留言:

張貼留言