Как проверить, поддерживает ли сервер HTTP / 2 в JavaScript в браузере - PullRequest
1 голос
/ 25 мая 2019

Я хотел бы знать, как проверить, поддерживает ли сервер HTTP / 2 в JavaScript в браузере.Если возможно, я хотел бы узнать способ без использования сервера API.

Причина проверки заключается в следующем.

  • В большинстве браузеров запросы HTTP / 1 ограничены6-8 одновременных запросов.
  • Чтобы обнаружить HTTP / 2 и правильно указать количество запросов

1 Ответ

1 голос
/ 25 мая 2019

Это сложно по нескольким причинам.

Даже если сервер поддерживает HTTP / 2, клиент может его не использовать. Например, если прокси-сервер (часто используемый в корпоративной среде или антивирусными продуктами) может не поддерживать HTTP / 2 abs, поэтому принудительно используйте HTTP / 1.1, несмотря на тот факт, что клиент и сервер поддерживают HTTP / 2.

В следующей спецификации Resource Timing Level 2 предлагается атрибут nextHopProtocol, который бы дал это, и поддержка достаточно хорошая , хотя примечательно, что Safari не не поддерживает это, учитывая распространенность iOS, которая, вероятно, является значительной частью ваших посетителей. Кроме того, он еще не утвержден, поэтому может измениться.

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

Однако даже если вы сможете точно измерить это, это может быть не столь точным показателем, как вы думаете о количестве одновременных запросов, которые будут использоваться. Например, Google Chrome экспериментирует с регулированием количества одновременных запросов на медленных соединениях . Это видно из Chrome 74 при использовании сетевого профиля «Медленный 3G» в Инструментах разработчика.

...