У нас есть много компонентов React Native <Image>
, отображаемых на каждом экране, и мы наблюдаем проблемы с производительностью из-за множества одновременных HTTP-запросов. Открытие и закрытие соединения требует больших затрат, а слишком большое количество одновременных подключений может привести к ограничениям, вызывающим тайм-ауты.
HTTP/2 поддерживает мультиплексирование, позволяя получать несколько запросов и ответных сообщений между клиент и сервер должны работать одновременно по одному соединению, а не по нескольким соединениям, что сокращает время загрузки страницы.
Мы заметили, что наше приложение React Native отправляет HTTP/1.1 в качестве версии в заголовках запросов для любого GET на <Image>
. В отличие от популярных приложений, мы открываем и закрываем одно соединение для каждого GET. Как убедиться, что запросы React Native Image используют HTTP/2 и совместно используют соединение?
(Все наши изображения находятся в одном домене CloudFront.)
Изменить — Дополнительная информация:
Наш дистрибутив CloudFront поддерживает HTTP/2:
И похоже, что клиент и сервер согласны с h2:
source
, за исключениемheaders
опора Вы пробовали это использовать? - person bennygenel   schedule 12.03.2019ALPN
h2
, что говорит о том, что вы пытаетесь его использовать... Итак, первый вопрос: действительно ли вы включили функцию HTTP/2 в своей раздаче CloudFront? - person Michael - sqlbot   schedule 13.03.2019