Подтвердить что ты не робот

Имеют ли в настоящее время реализации XHR использование HTTP/2?

Это может просто выделить мое неправильное представление, но мне было любопытно:

Если у вас был сервер HTTP/2 и вы хотели сделать запросы XHR в браузере на сервер, XHR автоматически воспользуется оптимизацией производительности в заголовках и таким образом, чтобы он предоставлял?

Или он будет игнорировать эту функциональность и работать как HTTP-запрос? Если это так, есть ли какие-либо вещи, которые мы можем сделать для использования новых оптимизаций в наших запросах?

4b9b3361

Ответ 1

Вам ничего не нужно делать. Если сервер поддерживает HTTP/2, XHR будет использовать его. Сжатие заголовка и, таким образом, автоматически срабатывает.

Проверьте это:

  • Откройте веб-сайт HTTP/2 в Chrome. Вы можете использовать наш, чтобы также проверить некоторые интересные вещи, касающиеся HTTP/2 PUSH, AngularJS и RequireJS.
  • Откройте панель Devtools (F12), затем панель сети, а затем нажмите XHR. Щелкните правой кнопкой мыши строку заголовков и убедитесь, что включен столбец "Протокол".
  • Вы должны увидеть "h2" в указанном столбце (в нашем случае AngularJS загружает шаблон с помощью XHR).
  • Пока вы это заметите, сервер переместил запрос XHR. Контрольные признаки отталкиваемых ответов - это "предварительные заголовки" вместо заголовков запросов, а также аномально небольшие "загрузки" и "ожидания". Мы даже добавляем дополнительный заголовок для ответа (x-shimmmercat-note: push-stream). Браузер принял этот запрос, поэтому XHR-запросы не только будут использовать HTTP/2, если они доступны, но могут в некоторых случаях использовать перенаправленные ресурсы.