Azure DevOps Server 2020 и http/2

Я настроил http на нашем 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.

2 ответа

Не все функции IIS поддерживают HTTP/2, поэтому иногда ваш браузер может подключаться только через HTTP 1.1. Microsoft документирует сценарии в этом документе .

Когда HTTP/2 не поддерживается?

В некоторых случаях HTTP/2 нельзя использовать в сочетании с другими функциями. В таких ситуациях Windows вернется к HTTP/1.1 и продолжит транзакцию. Это может включать согласование HTTP/1.1 во время рукопожатия или отправку кода ошибки клиенту, инструктирующего его повторить попытку через соединение HTTP/1.1.

  • Аутентификация Windows (NTLM/Kerberos/Negotiate) не поддерживается HTTP/2. В этом случае IIS вернется к HTTP/1.1.
  • Открытый текст — как упоминалось выше, IIS в настоящее время поддерживает только HTTP/2 через TLS. Опять же, IIS вернется к HTTP/1.1.
  • Регулирование пропускной способности — в IIS есть функция ограничения пропускной способности (в Inetmgr выберите сайт, «Ограничения» в разделе «Настройка» на панели «Действия»). Это применимо к HTTP/1.1, но не применяется к HTTP/2 (будет действовать без ошибок или ограничений пропускной способности).

Это то, что я нашел в своем вопросе «Почему Chrome использует квест http/1.1». Похоже, это известная ошибка, заключающаяся в том, что хром возвращается к http/1.1.

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

Другие вопросы по тегам