Azure DevOps Server 2020 和 http/2

Azure DevOps Server 2020 和 http/2

我已经设置了 https在我们的 Azure DevOps Server 2020.0.1 上,并希望 IIS 通过 http/2 为网站提供服务。使用基于 Chromium 的浏览器(Chrome、Edge)浏览网站时,所有内容均通过 http/1.1 提供。使用 Firefox 浏览时,网站的静态内容通过 http/2 提供,api 生成的内容通过 http/1.1 提供。

我希望所有提及的浏览器中的所有内容都通过 http/2 提供。这可能吗?

操作系统是Windows Server 2016。

答案1

并非所有 IIS 功能都支持 HTTP/2,因此有时您的浏览器只能通过 HTTP 1.1 进行连接。Microsoft 记录了以下场景

何时不支持 HTTP/2?

在少数情况下,HTTP/2 不能与其他功能结合使用。在这些情况下,Windows 将回退到 HTTP/1.1 并继续事务。这可能涉及在握手期间协商 HTTP/1.1,或向客户端发送错误代码,指示其通过 HTTP/1.1 连接重试。

  • HTTP/2 不支持 Windows 身份验证 (NTLM/Kerberos/Negotiate)。在这种情况下,IIS 将回退到 HTTP/1.1。
  • 明文 - 如上所述,IIS 目前仅支持基于 TLS 的 HTTP/2。同样,IIS 将回退到 HTTP/1.1。
  • 带宽限制 - IIS 具有限制带宽的功能(在 Inetmgr 中,选择站点,在操作窗格的配置下选择“限制”)。这适用于 HTTP/1.1,但不适用于 HTTP/2(将继续进行,不会出现任何错误或带宽限制)。

答案2

这是我在“为什么 Chrome 使用 http/1.1 探索”中发现的。这似乎是一个已知错误,即 Chromium 会回退到 http/1.1。

https://bugs.chromium.org/p/chromium/issues/detail?id=832586

相关内容