Spec-Zone.ru › Web APIs

PerformanceResourceTiming: свойство nextHopProtocol

Базовая Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с сентября 2017 года.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в Веб-воркерах.

Это nextHopProtocol свойство — строка, представляющая сетевой протокол, используемый для получения ресурса, идентифицированного по идентификатору протокола ALPN (RFC7301).

Если используется прокси и установлено туннельное соединение, это свойство возвращает идентификатор протокола ALPN туннелированного протокола. В противном случае свойство возвращает идентификатор протокола ALPN первого узла подключения к прокси.

Значение

nextHopProtocol свойство может принимать следующие значения:

  • Строка, представляющая сетевой протокол, используемый для получения ресурса, как определено идентификатором протокола ALPN (RFC7301). Типичные значения:
    • "http/0.9"
    • "http/1.0"
    • "http/1.1"
    • "h2"
    • "h2c"
    • "h3"
  • Пустая строка, если запрос к ресурсу является междоменным и заголовок ответа HTTP Timing-Allow-Origin не используется.

Примеры

Регистрация ресурсов, использующих ни HTTP/2, ни HTTP/3

nextHopProtocol свойство может использоваться для отображения ресурсов, которые не используют протоколы HTTP/2 или HTTP/3.

Пример с помощью PerformanceObserver, который сообщает о новых resource записях производительности, как только они регистрируются в временной шкале производительности браузера. Используйте buffered вариант для доступа к записям, созданным до создания наблюдателя.

const observer = new PerformanceObserver((list) => {
  list.getEntries().forEach((entry) => {
    const protocol = entry.nextHopProtocol;
    if (protocol && !(protocol === "h2" || protocol === "h3")) {
      console.log(`${entry.name} uses ${protocol}.`);
    }
  });
});

observer.observe({ type: "resource", buffered: true });

Пример с использованием Performance.getEntriesByType(), который отображает только resource записи производительности, присутствующие в временной шкале производительности браузера на момент вызова этого метода:

const resources = performance.getEntriesByType("resource");
resources.forEach((entry) => {
  const protocol = entry.nextHopProtocol;
  if (protocol && !(protocol === "h2" || protocol === "h3")) {
    console.log(`${entry.name} uses ${protocol}.`);
  }
});

Информация о протоколах междоменных сетей

Если значение nextHopProtocol свойства — пустая строка, ресурс может быть междоменным запросом. Чтобы отобразить информацию о протоколах междоменных сетей, нужно установить заголовок ответа HTTP Timing-Allow-Origin.

Например, чтобы предоставить https://developer.mozilla.org возможность видеть информацию о протоколах сети, ресурс должен отправлять:

Timing-Allow-Origin: https://developer.mozilla.org

Спецификации

Спецификация
Временные метки ресурсов
# dom-performanceresourcetiming-nexthopprotocol

Совместимость браузеров

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
nextHopProtocol 61 17 45 48 11 61 45 45 11 8.0 61

См. также

  • Timing-Allow-Origin
  • HTTP/2
  • HTTP/3

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/nextHopProtocol

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API