[研究]Web Server 支援 HTTP/2 的條件?
2025-06-09
ChatGPT 說:
Web Server 要支援 HTTP/2,需滿足以下條件:
🔧 一、Web Server 軟體本身要支援 HTTP/2
常見支援 HTTP/2 的 Web Server:
| Web Server | HTTP/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:
- 使用開發者工具(Chrome DevTools → Network → Protocol)
- 使用 curl,語法:curl -I --http2 https://your-domain.com
- 使用 https://tools.keycdn.com/http2-test
(完)
沒有留言:
張貼留言