Server-Timing
Baseline 2023
Newly available
Since March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Der HTTP Server-Timing
Antwort-Header kommuniziert ein oder mehrere Leistungskennzahlen über den Anforderungs-Antwort-Zyklus an den User-Agent.
Er wird verwendet, um Backend-Server-Timing-Metriken (zum Beispiel Datenbank-Lese/Schreibvorgänge, CPU-Zeit, Dateizugriff etc.) in den Entwicklerwerkzeugen im Browser des Nutzers oder in der PerformanceServerTiming
Schnittstelle anzuzeigen.
Header-Typ | Antwort-Header |
---|---|
Verbotener Header-Name | Nein |
Syntax
// A single metric
Server-Timing: <timing-metric>
// Multiple metrics as a comma-separated list
Server-Timing: <timing-metric>, …, <timing-metricN>
Ein <timing-metric>
hat einen Namen und kann eine optionale Dauer und eine optionale Beschreibung enthalten.
Zum Beispiel:
// A metric with a name only
Server-Timing: missedCache
// A metric with a duration
Server-Timing: cpu;dur=2.4
// A metric with a description and duration
Server-Timing: cache;desc="Cache Read";dur=23.2
// Two metrics with duration values
Server-Timing: db;dur=53, app;dur=47.2
Direktiven
<timing-metric>
-
Eine durch Kommas getrennte Liste von einem oder mehreren Metriken mit den folgenden Komponenten, die durch Semikolons getrennt sind:
<name>
-
Ein Name-Token (keine Leerzeichen oder Sonderzeichen) für die Metrik, die implementierungsspezifisch oder durch den Server definiert ist, wie
cacheHit
. <duration>
Optional-
Eine Dauer als Zeichenkette
dur
, gefolgt von=
, gefolgt von einem Wert, wiedur=23.2
. <description>
Optional-
Eine Beschreibung als Zeichenkette
desc
, gefolgt von=
, gefolgt von einem Wert als Token oder in Anführungszeichen, wiedesc=prod
oderdesc="DB lookup"
.
Namen und Beschreibungen sollten so kurz wie möglich gehalten werden (zum Beispiel Abkürzungen verwenden und optionale Werte weglassen), um den HTTP-Daten-Overhead zu minimieren.
Beschreibung
Datenschutz und Sicherheit
Der Server-Timing
Header kann potenziell sensible Informationen über Anwendungen und Infrastrukturen offenlegen.
Entscheiden Sie basierend auf dem Anwendungsfall, welche Metriken gesendet werden, wann sie gesendet werden, und wer sie sehen darf.
Zum Beispiel könnten Sie entscheiden, Metriken nur authentifizierten Benutzern anzuzeigen und nichts bei öffentlichen Antworten.
PerformanceServerTiming Schnittstelle
Zusätzlich zu den Server-Timing
Header-Metriken, die in den Entwicklerwerkzeugen des Browsers erscheinen, ermöglicht die PerformanceServerTiming
Schnittstelle, dass Werkzeuge automatisch Metriken von JavaScript sammeln und verarbeiten. Diese Schnittstelle ist auf dasselbe Origin beschränkt, aber Sie können den Timing-Allow-Origin
Header verwenden, um die Domains anzugeben, die auf die Servermetriken zugreifen dürfen. Die Schnittstelle ist nur in sicheren Kontexten (HTTPS) in einigen Browsern verfügbar.
Die Komponenten des Server-Timing
Headers ordnen sich den PerformanceServerTiming
Eigenschaften wie folgt zu:
"name"
->PerformanceServerTiming.name
"dur"
->PerformanceServerTiming.duration
"desc"
->PerformanceServerTiming.description
Beispiele
Senden einer Metrik unter Verwendung des Server-Timing-Headers
Die folgende Antwort enthält eine Metrik custom-metric
mit einer Dauer von 123.45
Millisekunden und einer Beschreibung "My custom metric":
Server-Timing: custom-metric;dur=123.45;desc="My custom metric"
Server-Timing als HTTP-Trailer
In der folgenden Antwort wird der Trailer
Header verwendet, um anzugeben, dass ein Server-Timing
Header nach dem Antwort-Body folgt.
Eine Metrik custom-metric
mit einer Dauer von 123.4
Millisekunden wird gesendet.
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Trailer: Server-Timing
--- response body ---
Server-Timing: custom-metric;dur=123.4
Warnung:
Nur die DevTools des Browsers können den Server-Timing
Header als HTTP-Trailer verwenden, um Informationen im Tab Netzwerk -> Timings anzuzeigen.
Die Fetch API kann nicht auf HTTP-Trailer zugreifen.
Siehe Browser-Kompatibilität für weitere Informationen.
Spezifikationen
Specification |
---|
Server Timing # the-server-timing-header-field |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
PerformanceServerTiming
Trailer
Header