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