PerformanceResourceTiming: secureConnectionStart-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 schreibgeschützte Eigenschaft secureConnectionStart gibt einen Timestamp unmittelbar vor dem Zeitpunkt zurück, an dem der Browser den Handshake-Prozess zur Sicherung der aktuellen Verbindung startet. Wenn keine sichere Verbindung verwendet wird, gibt die Eigenschaft Null zurück.

Wert

Die Eigenschaft secureConnectionStart kann die folgenden Werte haben:

  • Ein DOMHighResTimeStamp, der den Zeitpunkt unmittelbar vor dem Start des Handshake-Prozesses zur Sicherung der aktuellen Verbindung angibt, wenn die Ressource über eine sichere Verbindung abgerufen wird.
  • 0, wenn keine sichere Verbindung verwendet wird.
  • 0, wenn die Ressource sofort aus einem Cache abgerufen wurde.
  • 0, wenn die Ressource eine Cross-Origin-Anfrage ist und kein Timing-Allow-Origin HTTP-Antwort-Header verwendet wird.

Beispiele

Messung der TLS-Aushandlungszeit

Die Eigenschaften secureConnectionStart und requestStart können verwendet werden, um zu messen, wie lange die TLS-Aushandlung dauert.

js
const tls = entry.requestStart - entry.secureConnectionStart;

Beispiel mit einem PerformanceObserver, der über neue resource-Performance-Einträge benachrichtigt, sobald sie in der Performance-Zeitleiste des Browsers aufgezeichnet werden. Verwenden Sie die buffered-Option, um auf Einträge vor der Erstellung des Observers zuzugreifen.

js
const observer = new PerformanceObserver((list) => {
  list.getEntries().forEach((entry) => {
    const tls = entry.requestStart - entry.secureConnectionStart;
    if (tls > 0) {
      console.log(`${entry.name}: TLS negotiation duration: ${tls}ms`);
    }
  });
});

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

Beispiel mit Performance.getEntriesByType(), das nur resource-Performance-Einträge zeigt, die zum Zeitpunkt des Aufrufs dieser Methode in der Performance-Zeitleiste des Browsers vorhanden sind:

js
const resources = performance.getEntriesByType("resource");
resources.forEach((entry) => {
  const tls = entry.requestStart - entry.secureConnectionStart;
  if (tls > 0) {
    console.log(`${entry.name}: TLS negotiation duration: ${tls}ms`);
  }
});

Informationen zur Zeitmessung bei Cross-Origin

Wenn der Wert der Eigenschaft secureConnectionStart 0 ist, wird entweder keine sichere Verbindung verwendet oder es handelt sich um eine Cross-Origin-Anfrage. Um die Anzeige von Cross-Origin-Zeitinformationen zu ermöglichen, muss der Timing-Allow-Origin HTTP-Antwort-Header gesetzt werden.

Zum Beispiel sollte, um https://developer.mozilla.org den Zugriff auf Zeitressourcen zu ermöglichen, die Cross-Origin-Ressource senden:

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

Spezifikationen

Specification
Resource Timing
# dom-performanceresourcetiming-secureconnectionstart

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
secureConnectionStart

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Has more compatibility info.

Siehe auch