Я пытаюсь найти способы повысить производительность своего веб-приложения, когда наткнулся на HTTP / 2. Прочитав об этом, я узнал, что в нем очень много функций для повышения производительности сайта.
Переходя к его реализации, я вижу, что вам нужно только обновить свой браузер до последней версии, чтобы его можно было использовать. Поскольку в моем браузере уже установлена последняя версия, я вижу, что все мои ресурсы - файлы CSS, JS и HTML обслуживаются с помощью HTTP / 2. Однако запросы данных, которые я делаю с помощью angularJS, по-прежнему используют HTTP / 1.1. Вот мои вопросы.
Как заставить мои запросы данных использовать протокол HTTP / 2? Надо ли добавлять в шапку лишний параметр?
Отпустит ли HTTP / 2 ограничение браузеров на 6 одновременных запросов на домен? Могу ли я сделать более 6 параллельных запросов ajax?
Я использую angularJS на стороне клиента. Мой запрос проходит через Cloudflare на сервер, обслуживаемый Play Framework.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если HTTP / 2 поддерживается как клиентом (браузером), так и веб-сервером, он будет использоваться. В вашем интерфейсе JavaScript не требуется никаких различий - браузер будет использовать его автоматически, если сможет.
Поэтому я предполагаю, что ваши запросы «данных» находятся в другом домене по сравнению с вашими обычными запросами, и этот домен не поддерживает HTTP / 2.
Да, HTTP / 2 значительно увеличивает количество параллельных запросов в полете. 100 в полете «потоков» - это обычная настройка сервера. Однако это создает все интересные проблемы: например, Chrome обнаружил, что у него есть некоторые недостатки, с которыми приходится иметь дело, когда такое количество запросов выполняется одновременно, и на какое-то время он установил ограничение в 6 запросов HTTP / 2 за раз. Кроме того, некоторые запросы с более низким приоритетом (например, изображения ниже сгиба) могут использовать полосу пропускания, лучше используемую для запросов с более высоким приоритетом (например, изображения выше сгиба). HTTP / 2 имеет концепцию зависимостей и приоритетов, но не каждый браузер использует их.
Как только вы вникнете в эту тему, это увлекательная тема.
Однако я не очень ясен по второму пункту. С HTTP / 2 ограничение на 6 параллельных запросов хрома исчезнет, верно?
Да, это так, потому что вы можете отправлять несколько запросов по одному и тому же соединению с HTTP / 2, тогда как вам приходилось открывать больше соединений для нескольких соединений (этот браузер ограничен 6). См. Мой ответ здесь, чтобы узнать больше об этом: stackoverflow.com/questions/36517829/…. Однако, хотя предел 6 резко увеличен (часто до 100), он не является полностью неограниченным, и теперь были замечены другие побочные эффекты, теперь предел увеличен. Более подробную информацию вы можете найти в моей книге по этой теме: manning.com/books/http2-in-action
Да, мои запросы данных находятся в другом домене. Мне нужно выяснить, почему этот домен не поддерживает HTTP / 2. Спасибо большое за вашу помощь.