Spec-Zone.ru › HTTP

Заголовки: Server-Timing

Заголовок Server-Timing

Базовая поддержка Широко доступно *

Эта функция хорошо зарекомендовала себя и работает на множестве устройств и в различных версиях браузеров. Она доступна во всех браузерах с марта 2023 года.

* Некоторые части этой функции могут поддерживаться в разной степени.

  • Подробнее
  • Полная таблица совместимости
>

HTTP-заголовок Server-Timing ответа передаёт пользовательскому агенту одну или несколько метрик производительности цикла запрос-ответ. Он используется для отображения метрик времени работы серверной части (например, чтения/записи базы данных, времени работы ЦП, доступа к файловой системе и т. д.) в инструментах разработчика браузера пользователя или в интерфейсе PerformanceServerTiming.

Тип заголовка Заголовок ответа

Синтаксис

// A single metric
Server-Timing: <timing-metric>

// Multiple metrics as a comma-separated list
Server-Timing: <timing-metric>, …, <timing-metricN>

Элемент <timing-metric> имеет имя и может содержать необязательные длительность и описание. Например:

// 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

Директивы

<timing-metric>

Список из одной или нескольких метрик, разделённых запятыми. Компоненты каждой метрики разделяются точками с запятой:

<name>

Токен имени метрики (без пробелов и специальных символов), определяемый реализацией или сервером, например cacheHit.

<duration> Необязательно

Длительность в виде строки dur, за которой следует =, а затем значение, например dur=23.2.

<description> Необязательно

Описание в виде строки desc, за которой следует =, а затем значение в виде токена или строки в кавычках, например desc=prod или desc="DB lookup".

Имена и описания следует по возможности сокращать (например, использовать сокращения и опускать необязательные значения), чтобы уменьшить объём данных HTTP.

Описание

>

Конфиденциальность и безопасность

Заголовок Server-Timing может раскрывать потенциально конфиденциальные сведения о приложении и инфраструктуре. Выбирайте, какие метрики отправлять, когда их отправлять и кому их показывать, исходя из сценария использования. Например, можно показывать метрики только аутентифицированным пользователям и не включать их в общедоступные ответы.

Интерфейс PerformanceServerTiming

Метрики заголовка Server-Timing отображаются в инструментах разработчика браузера, а интерфейс PerformanceServerTiming позволяет инструментам автоматически собирать и обрабатывать метрики с помощью JavaScript. Этот интерфейс доступен только для того же источника, но с помощью заголовка Timing-Allow-Origin можно указать домены, которым разрешён доступ к метрикам сервера. В некоторых браузерах интерфейс доступен только в безопасных контекстах (HTTPS).

Компоненты заголовка Server-Timing соответствуют свойствам интерфейса PerformanceServerTiming следующим образом:

  • "name" -> PerformanceServerTiming.name
  • "dur" -> PerformanceServerTiming.duration
  • "desc" -> PerformanceServerTiming.description

Примеры

>

Отправка метрики с помощью заголовка Server-Timing

Следующий ответ содержит метрику custom-metric длительностью 123.45 миллисекунд и описанием "My custom metric":

Server-Timing: custom-metric;dur=123.45;desc="My custom metric"

Server-Timing в качестве завершающего заголовка HTTP

В следующем ответе заголовок Trailer указывает, что после тела ответа будет передан заголовок Server-Timing. Отправляется метрика custom-metric длительностью 123.4 миллисекунд.

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Trailer: Server-Timing

--- response body ---
Server-Timing: custom-metric;dur=123.4

Предупреждение: Только инструменты разработчика браузера могут использовать заголовок Server-Timing в качестве завершающего заголовка HTTP для отображения сведений на вкладке Network -> Timings. Fetch API не может получать завершающие заголовки. Подробнее см. в разделе Совместимость с браузерами.

Спецификации

Спецификация
Server Timing>
# the-server-timing-header-field>

Совместимость с браузерами

Настольные компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari для iOS Samsung Internet WebView для Android WebView для iOS
Server-Timing 65 79 61 52 16.4 65 61 47 16.4 9.0 65 16.4
trailer Нет Нет
71Распознаётся только заголовок Server-Timing, и он доступен только в инструментах разработчика на вкладке Timing панели сети (ошибка 1403051). Разработчики не могут получать завершающие заголовки через Fetch API или XHR.
Нет Нет Нет
79Распознаётся только заголовок Server-Timing, и он доступен только в инструментах разработчика на вкладке Timing панели сети (ошибка 1403051). Разработчики не могут получать завершающие заголовки через Fetch API или XHR.
Нет Нет Нет Нет Нет

См. также

  • PerformanceServerTiming
  • Заголовок Trailer

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Server-Timing

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API