¿Qué es la API Server-Timing?

Server-Timing es una cabecera HTTP con la que el servidor informa al navegador de sus tiempos internos (base de datos, caché, render).

¿Qué es la API Server-Timing?

Server-Timing es una cabecera de respuesta HTTP con la que tu servidor informa de cuánto tardó su propio trabajo, por ejemplo una consulta a la base de datos, una lectura de caché o el renderizado. El navegador muestra estas métricas en sus herramientas de desarrollo y las expone a JavaScript mediante la interfaz PerformanceServerTiming. Permite saber dónde del servidor se fue el tiempo.

Sintaxis

Cada métrica tiene un nombre y, opcionalmente, una duración y una descripción; varias se separan con comas. Según MDN:

Server-Timing: db;dur=53, cache;desc="Cache Read";dur=23.2, app;dur=47.2

El nombre es un token sin espacios ni caracteres especiales, dur es la duración numérica y desc la descripción. En JavaScript los campos son name, duration y description.

Ejemplo

El Time to First Byte de una página de producto es de 900 ms. Con Server-Timing: db;dur=620, render;dur=210 se ve enseguida que la mayor parte es la base de datos. Un script de monitorización de usuarios reales puede recoger estos valores en cada visita.

Errores habituales

  • Filtrar datos internos. Según MDN, la cabecera puede exponer información sensible de la aplicación y la infraestructura. Envíala de forma selectiva, por ejemplo solo a usuarios autenticados.
  • Esperar acceso entre orígenes. La interfaz se limita al mismo origen. Para otros orígenes hace falta una cabecera Timing-Allow-Origin.
  • Medir de forma demasiado general. Una única métrica total dice poco. Divide por fases.
  • Confundirla con el tiempo de red. Server-Timing solo recoge lo que mide el servidor. El lado del navegador lo cubre la Web Performance API.

Server-Timing y monitorización

Es más útil junto con mediciones externas. La monitorización de API de LoadFocus divide el tiempo de respuesta de cada ejecución en espera, DNS, conexión TCP, primer byte y descarga, de modo que puedes separar red y servidor y luego mirar dentro del servidor con Server-Timing.

Preguntas frecuentes: Server-Timing

¿Los navegadores admiten Server-Timing?

MDN lo clasifica como Baseline "Widely available", disponible en navegadores desde marzo de 2023, con diferencias en algunas partes.

¿Puede JavaScript leer los valores?

Sí, mediante PerformanceServerTiming. Entre orígenes distintos hace falta además Timing-Allow-Origin.

¿Mide el tiempo de red?

No, solo lo que tu servidor decide medir.

¿Es seguro en producción?

Sí, si limitas lo que envías. La cabecera puede revelar detalles de la infraestructura.

¿Qué tan rápido es tu sitio web?

Mejora su velocidad y SEO sin problemas con nuestra Prueba de Velocidad gratuita.

Prueba de velocidad de sitio web gratis

Analice la velocidad de carga de su sitio web y mejore su rendimiento con nuestro comprobador de velocidad de página gratuito.