Реагировать на собственные запросы изображений через одно соединение HTTP / 2 - PullRequest
4 голосов
/ 12 марта 2019

У нас имеется множество компонентов React Native <Image>, отображаемых на экране, и наблюдаются проблемы с производительностью из-за множества одновременных запросов http . Открытие и закрытие соединения обходится дорого, а наличие слишком большого количества одновременных соединений может привести к ограничениям, которые вызывают тайм-ауты.

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

CloudFront поддерживает HTTP / 2, HTTP / 1.1 и HTTP / 1 по умолчанию в зависимости от версии, которую клиент отправляет в заголовке запроса.

Мы заметили, что наше приложение React Native отправляет HTTP / 1.1 в качестве версии в заголовках запросов для любого GET на <Image>. В отличие от популярных приложений, мы открываем и закрываем одно соединение для каждого GET. Как мы можем убедиться, что запросы React Native Image используют HTTP / 2 и совместно используют соединение?

(Все наши изображения находятся в одном домене CloudFront.)

enter image description here


Редактировать - Больше информации:

Наш дистрибутив CloudFront поддерживает HTTP / 2:

enter image description here

И, похоже, клиент и сервер договариваются о h2:

enter image description here

...