PerformanceResourceTiming: nextHopProtocol-Eigenschaft
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die nextHopProtocol
schreibgeschützte Eigenschaft ist ein String, der das Netzwerkprotokoll repräsentiert, das zum Abrufen der Ressource verwendet wird, wie durch die ALPN-Protokoll-ID (RFC7301) identifiziert.
Wenn ein Proxy verwendet wird und eine Tunnelverbindung hergestellt wurde, gibt diese Eigenschaft die ALPN-Protokoll-ID des getunnelten Protokolls zurück. Andernfalls gibt diese Eigenschaft die ALPN-Protokoll-ID des ersten Hops zum Proxy zurück.
Wert
Die nextHopProtocol
-Eigenschaft kann die folgenden Werte haben:
- Ein String, der das Netzwerkprotokoll repräsentiert, das zum Abrufen der Ressource verwendet wird, wie durch die ALPN-Protokoll-ID (RFC7301) identifiziert. Typische Werte sind:
"http/0.9"
"http/1.0"
"http/1.1"
"h2"
"h2c"
"h3"
- Ein leerer String, wenn die Ressource eine Cross-Origin-Anfrage ist und kein
Timing-Allow-Origin
HTTP-Antwortheader verwendet wird.
Beispiele
Protokollierung von Ressourcen, die weder HTTP/2 noch HTTP/3 verwenden
Die nextHopProtocol
-Eigenschaft kann verwendet werden, um Ressourcen zu sehen, die nicht die HTTP/2- oder HTTP/3-Protokolle verwenden.
Beispiel mit einem PerformanceObserver
, der über neue resource
-Performance-Einträge benachrichtigt, wenn sie in der Performance-Zeitleiste des Browsers aufgezeichnet werden. Verwenden Sie die buffered
-Option, um auf Einträge vor der Erstellung des Observers zuzugreifen.
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 });
Beispiel mit Performance.getEntriesByType()
, das nur resource
-Performance-Einträge anzeigt, die zum Zeitpunkt des Aufrufs dieser Methode in der Performance-Zeitleiste des Browsers vorhanden sind:
const resources = performance.getEntriesByType("resource");
resources.forEach((entry) => {
const protocol = entry.nextHopProtocol;
if (protocol && !(protocol === "h2" || protocol === "h3")) {
console.log(`${entry.name} uses ${protocol}.`);
}
});
Informationen zum Cross-Origin-Netzwerkprotokoll
Wenn der Wert der nextHopProtocol
-Eigenschaft ein leerer String ist, könnte die Ressource eine Cross-Origin-Anfrage sein. Um Informationen zum Cross-Origin-Netzwerkprotokoll offenzulegen, muss der Timing-Allow-Origin
HTTP-Antwortheader gesetzt werden.
Zum Beispiel, um https://developer.mozilla.org
zu erlauben, Netzwerkprotokollinformationen zu sehen, sollte die Cross-Origin-Ressource senden:
Timing-Allow-Origin: https://developer.mozilla.org
Spezifikationen
Specification |
---|
Resource Timing # dom-performanceresourcetiming-nexthopprotocol |
Browser-Kompatibilität
BCD tables only load in the browser