IIS 可以通過 QUIC 協議為我的 .NET 應用程序提供服務嗎?
我們有一個超級健談 (ajax) 的 html 5 應用程序(它的構造類似於 gmail,大量的 js)。
QUIC 的閱讀聽起來很有趣。 https://en.wikipedia.org/wiki/QUIC
IIS(或任何 .NET 託管引擎)能否支持 QUIC?
如果 IIS/Win 做不到,我可以在 IIS 前面的 haproxy 實例(在 CentOS 上)中做嗎?
截至 2020 年 8 月,Windows 10 Version 2004 (2020-04) 和 Windows Server 2019 (version 19041) 中的 IIS 版本確實支持 QUIC,而且 QUIC 似乎預設啟用:
從我自己的觀察中得到一些警告:
它似乎只存在於全脂 IIS 中,而不存在於 IIS Express 中(但無論如何您都不會在生產中使用 IIS Express)。
HTTP/3 (QUIC) 和 HTTP/2 (SPDY) 似乎只在 HTTPS 綁定中啟用,而不在明文 HTTP 綁定中啟用。
- 我可能錯了——我不熟悉 QUIC 的細節。
- 請注意,QUIC 實際上是一個相當低級的協議,“HTTP/3”可以被認為是“HTTP/2-over-QUIC”。
除了在綁定設置頁面中禁用QUIC 的單個複選框之外,我看不到在 IIS 中配置 QUIC 的任何其他方式。
關於使用 IIS 作為前端反向代理的常見場景(使用 IIS 的 URL 重寫擴展和應用程序請求路由):
我在 ARR 中找不到任何有關 QUIC 支持的資訊。
請注意,URL 重寫擴展(使用 ARR 所必需的)最近已在 2017 年更新到 2.1 版,此前它被困在 2.0 版近十年。您需要從 IIS 下載頁面手動安裝它。
ARR 擴展仍然停留在 2013 年發布的 3.0 版上。
- 這讓我覺得 ARR 3.0 將不支持 HTTP/2 (SPDY) 或 HTTP/3 (QUIC) - 但同時,ARR 使用了
HTTP.sys
Windows 中的現有堆棧,所以實際上ARR 可能使用 HTTP /3 或 HTTP/2(如果可用)。但如果沒有微軟內部人士的官方消息或提示,這是不可能的。此外,2020 年 5 月,微軟宣布他們的 QUIC 實現在 GitHub 上是開源的:https ://github.com/microsoft/msquic - 如果您有任何其他問題,您可以在那里而不是通過 MS 的官方獲得答案支持渠道或他們從未更新的 IIS 部落格。
我確實向 MSQuic GitHub 儲存庫發布了一個問題,以尋求更多關於 QUIC 功能的資訊和文件,但該問題已作為題外話關閉,但他們確實向我保證,他們已將問題轉發給內部文件團隊,但正在做日期範圍的Google搜尋顯示,微軟沒有發布任何新的 QUIC 文件。