Ir al contenido principal

User-Agent Client Hints y reducción del UA

Los navegadores basados en Chromium envían una cadena User-Agent reducida: los detalles que identificaban un dispositivo con más precisión se congelan en valores fijos, y los datos precisos pasan a los User-Agent Client Hints (UA-CH), que el sitio tiene que solicitar. Esta guía analiza una cadena antigua de Chrome en Android junto a una reducida.

Ejemplo práctico

Chrome en Android, cadena antigua (antes de la reducción)
Mozilla/5.0 (Linux; Android 12; SM-G991B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.88 Mobile Safari/537.36
Navegador
Chrome 99.0.4844.88
Motor
Blink
Sistema operativo
Android 12
Clase de dispositivo
Móvil
Dispositivo
Samsung SM-G991B
Arquitectura de CPU
Desconocido
Bot / rastreador
No
Chrome en Android, cadena reducida
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36
Navegador
Chrome 120.0.0.0
Motor
Blink
Sistema operativo
Android 10
Clase de dispositivo
Móvil
Dispositivo
K
Arquitectura de CPU
Desconocido
Bot / rastreador
No

La cadena antigua expone Android 12, el modelo de Samsung SM-G991B y la versión completa 99.0.4844.88. En la cadena reducida, Android 10 y el modelo K son marcadores de posición que envían todos los dispositivos Android, y la versión termina en .0.0.0. El analizador informa exactamente de lo que dice la cadena —Android 10, modelo K—, así que solo la versión principal 120 y el token Mobile siguen aportando información real.

Client hints de baja entropía que un navegador Chromium envía por defecto y un encabezado de respuesta Accept-CH que pide más
Sec-CH-UA: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"
Sec-CH-UA-Mobile: ?1
Sec-CH-UA-Platform: "Android"

Accept-CH: Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List

Reglas clave

  • Las cadenas reducidas de Chrome solo conservan la versión principal; la versión menor, la compilación y el parche son siempre 0.0.0.
  • En Android, la versión del SO se fija en 10 y el modelo del dispositivo se sustituye por K. En escritorio, la plataforma se congela en valores como Windows NT 10.0; Win64; x64, Macintosh; Intel Mac OS X 10_15_7 o X11; Linux x86_64.
  • Sobre HTTPS, los navegadores Chromium envían por defecto tres client hints de baja entropía: Sec-CH-UA (marcas y versiones principales), Sec-CH-UA-Mobile y Sec-CH-UA-Platform.
  • Los hints detallados como Sec-CH-UA-Platform-Version, Sec-CH-UA-Model y Sec-CH-UA-Full-Version-List solo se envían después de que el servidor los solicite en un encabezado de respuesta Accept-CH. En JavaScript, usa navigator.userAgentData.getHighEntropyValues().
  • La lista de marcas incluye una entrada «GREASE» deliberadamente falsa, como «Not_A Brand». Busca la marca que necesitas en lugar de comparar el encabezado completo.
  • Windows 11 sigue enviando Windows NT 10.0 en la cadena User-Agent; un Sec-CH-UA-Platform-Version de 13.0.0 o superior identifica Windows 11.
  • Los client hints son una función de Chromium, así que mantén un respaldo basado en User-Agent para otros navegadores. Este analizador solo lee la cadena User-Agent, no los client hints.

Más guías sobre user agents