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 Oktober 2018.
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-OriginHTTP-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://big.rakal.top den Zugriff auf Zeitressourcen zu ermöglichen, die Cross-Origin-Ressource senden:
Timing-Allow-Origin: https://big.rakal.top
Spezifikationen
| Specification |
|---|
| Resource Timing> # dom-performanceresourcetiming-secureconnectionstart> |
Browser-Kompatibilität
Loading…