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 keinTiming-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.
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.
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:
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:
Timing-Allow-Origin: https://developer.mozilla.org
Spezifikationen
Specification |
---|
Resource Timing # dom-performanceresourcetiming-secureconnectionstart |
Browser-Kompatibilität
BCD tables only load in the browser