Server-Timing header
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.
* Some parts of this feature may have varying levels of support.
Der HTTP-Server-Timing
-Antwort-Header kommuniziert ein oder mehrere Leistungskennzahlen über den Anfrage-Antwort-Zyklus an den User-Agent.
Er wird verwendet, um Backend-Server-Timing-Metriken (zum Beispiel Datenbank-Lese-/Schreibzugriffe, CPU-Zeit, Dateisystemzugriffe usw.) in den Entwickler-Tools im Browser des Benutzers oder in der PerformanceServerTiming
-Schnittstelle anzuzeigen.
Headertyp | Antwort-Header |
---|---|
Verbotener Anfrage-Header | 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 einer oder mehreren Metriken mit den folgenden Komponenten, die durch Semikolon getrennt sind:
<name>
-
Ein Namenstoken (keine Leerzeichen oder Sonderzeichen) für die Metrik, die implementierungsspezifisch oder vom Server definiert ist, wie
cacheHit
. <duration>
Optional-
Eine Dauer als die Zeichenkette
dur
, gefolgt von=
, gefolgt von einem Wert, wiedur=23.2
. <description>
Optional-
Eine Beschreibung als die Zeichenkette
desc
, gefolgt von=
, gefolgt von einem Wert als Token oder als zitierte Zeichenkette, wiedesc=prod
oderdesc="DB lookup"
.
Namen und Beschreibungen sollten so kurz wie möglich gehalten werden (zum Beispiel durch die Verwendung von Abkürzungen und das Weglassen optionaler Werte), um den HTTP-Daten-Overhead zu minimieren.
Beschreibung
Datenschutz und Sicherheit
Der Server-Timing
-Header kann potenziell sensible Informationen über Anwendungen und Infrastruktur preisgeben.
Entscheiden Sie, welche Metriken gesendet werden sollen, wann sie gesendet werden sollen und wer sie sehen darf, basierend auf dem Anwendungsfall.
Zum Beispiel können Sie entscheiden, nur authentifizierten Benutzern Metriken anzuzeigen und in öffentlichen Antworten nichts zu zeigen.
PerformanceServerTiming-Schnittstelle
Zusätzlich zur Anzeige der Server-Timing
-Header-Metriken in den Entwicklerwerkzeugen des Browsers ermöglicht die PerformanceServerTiming
-Schnittstelle Tools, Metriken automatisch aus JavaScript zu sammeln und zu verarbeiten. Diese Schnittstelle ist auf den gleichen Ursprung beschränkt, aber Sie können den Timing-Allow-Origin
-Header verwenden, um die Domänen anzugeben, die Zugriff auf die Server-Metriken haben dürfen. Die Schnittstelle ist nur in sicheren Kontexten (HTTPS) in einigen Browsern verfügbar.
Die Komponenten des Server-Timing
-Headers werden wie folgt auf die PerformanceServerTiming
-Eigenschaften abgebildet:
"name"
->PerformanceServerTiming.name
"dur"
->PerformanceServerTiming.duration
"desc"
->PerformanceServerTiming.description
Beispiele
Senden einer Metrik mit dem Server-Timing-Header
Die folgende Antwort enthält eine Metrik custom-metric
mit einer Dauer von 123.45
Millisekunden und einer Beschreibung von "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 anzuzeigen, dass ein Server-Timing
-Header dem Antwortkörper folgen wird.
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 Netzwerk-Tab -> 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
Siehe auch
PerformanceServerTiming
Trailer
-Header