User-Agent Client Hints: ¿un reemplazo para User-Agent o una nueva fuente de datos?

User-Agent Client Hints: ¿un reemplazo para User-Agent o una nueva fuente de datos?
Markus_automation
Markus_automation

Expert in data parsing and automation

Cada solicitud HTTP contiene un conjunto de cabeceras que transmiten información sobre el cliente al servidor. Una de estas cabeceras es User-Agent. Históricamente, era una cadena larga que contenía el nombre del navegador, la versión, el sistema operativo e incluso el modelo del dispositivo. Los desarrolladores utilizaban esta cadena para ofrecer diferentes versiones de un sitio web para diferentes navegadores.

Client Hints son una extensión de HTTP que permite al navegador proporcionar pistas sobre sí mismo al servidor solo tras una solicitud explícita. En lugar de enviar de forma pasiva todos los datos en la cadena User-Agent, el navegador espera hasta que el servidor devuelva una cabecera Accept-CH que enumere las cabeceras requeridas. Solo después de eso añade estas cabeceras a las solicitudes posteriores.

Actualmente, los navegadores utilizados por más del 75% de los usuarios de Internet admiten Client Hints. En la práctica, esto afecta directamente a la forma en que funcionan hoy en día los analizadores, los sistemas antifraude y la creación de huellas digitales, ya que los enfoques más antiguos para analizar User-Agent se están volviendo menos fiables. El manejo adecuado de UA-CH permite obtener los mismos datos manteniendo una mayor precisión y control al desarrollar analizadores y lógica de detección de usuarios. Tener en cuenta UA-CH también es importante para la creación de huellas digitales, ya que falsificar un solo UA sin considerar UA-CH puede causar inconsistencias.

In este artículo, analizamos cómo funciona el protocolo UA-CH y compartimos consejos prácticos.

Contenidos

Mantén tu anonimato en línea con Octo Browser. Tu huella digital real no se puede rastrear.

¿Te gustaría probar Octo Browser con descuento?
Usa el código promocional OCTOSCRAPER para obtener un 30% de descuento en cualquier suscripción. Esta oferta solo es válida para nuevos usuarios.

Client Hints y User-Agent Client Hints

Aunque el mecanismo de Client Hints apareció por primera vez en 2013, se utilizaba para optimizar la entrega de contenido y no afectaba a la identificación del navegador. Solo con la introducción de User-Agent Client Hints comenzó a considerarse como una alternativa al User-Agent estándar.

El enfoque de Client Hints está implementado en navegadores basados en Chromium: el servidor solicita sugerencias y el navegador decide qué devolver. Esto significa que, por defecto, el navegador no envía ningún dato adicional y solo proporciona la información solicitada explícitamente por el servidor. El ejemplo más sencillo es que los desarrolladores pueden evitar el análisis complejo de la cadena User-Agent y, en su lugar, utilizar encabezados simples, sin depender de expresiones regulares.

User Agent

Con el tiempo, el User-Agent acumuló detalles y soluciones alternativas heredadas como Mozilla/5.0 (esta entrada específica existe desde la década de 1990). Esto llevó a:

  • Complejidad de análisis. Dado que el formato del User-Agent no está estandarizado, analizar la cadena requiere expresiones regulares, que no siempre son confiables. Las cadenas de User-Agent difíciles de leer se convierten en una fuente de errores y problemas de compatibilidad.

  • Fuga de datos de privacidad. El User-Agent transmite una gran cantidad de información y se envía con cada solicitud. Estos detalles permiten el seguimiento del usuario: la versión exacta del navegador, el modelo del dispositivo y la arquitectura del sistema operativo son utilizados por los rastreadores para la creación de una huella digital.

Como puede ver, había una clara necesidad de reemplazar el User-Agent por un nuevo mecanismo que fuera estructurado y controlado por el servidor, al mismo tiempo que preservara la compatibilidad y mejorara la privacidad.

Más adelante utilizaremos el término entropía. En el contexto de UA-CH, se refiere al grado de unicidad de la información transmitida. Cuanto mayor sea la entropía de un conjunto de parámetros, mayor será la posibilidad de que el navegador tenga una huella digital única, lo que a su vez ayuda a los sistemas antifraude a reconocerlo entre muchos otros perfiles.

User-Agent Client Hints (UA-CH) son un conjunto especializado de sugerencias del cliente que transmiten características del navegador y del dispositivo. En lugar de una sola cadena de UA, el navegador envía un conjunto de encabezados estructurados con el prefijo Sec-CH-UA-*, que incluyen:

  • Sec-CH-UA — una lista de marcas de navegadores y sus versiones.

  • Sec-CH-UA-Mobile ?0 o ?1 — indica si el navegador actual se considera móvil.

  • Sec-CH-UA-Platform — el nombre del sistema operativo (Windows, Android, macOS).

  • Sec-CH-UA-Platform-Version, Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Model, Sec-CH-UA-Full-Version-List — sugerencias de alta entropía con la versión exacta del SO, la arquitectura y el modelo del dispositivo. Pueden revelar información más única y, por lo tanto, solo se envían tras una solicitud explícita del servidor.

Algunas sugerencias se consideran de baja entropía: se envían de inmediato y no proporcionan información única (marca del navegador, plataforma, indicador de dispositivo móvil).

Client Hints y User-Agent Client Hints

El navegador envía sugerencias de alta entropía (versión exacta del SO, modelo de dispositivo, arquitectura y arquitectura de bits) solo después de una solicitud explícita de Accept-CH, porque proporcionan datos más únicos. De esta manera, las UA-CH permiten transmitir la misma e incluso más información en comparación con el User-Agent, pero de una manera más consciente de la privacidad y controlada por el servidor. Dicho esto, hablar de "control" es un tanto exagerado, porque técnicamente las UA-CH pueden transmitir mucha más información que el UA por sí solo, y nada impide que un servidor la solicite por completo mediante solicitudes adicionales. Desde la perspectiva del manejo de datos, las UA-CH son más convenientes y estructuradas que una cadena larga, pero los problemas de privacidad aún persisten.

Cómo funciona el intercambio de Client Hints

En la práctica, el ciclo de vida de UA-CH se ve así:

  1. La primera solicitud

En la primera solicitud, el navegador agrega por defecto sugerencias de baja entropía a los encabezados:

Sec-CH-UA: "Google Chrome";v="137", "Chromium";v="137", "Not/A)Brand";v="24"
Sec-CH-UA-Mobile: ?0
Sec-CH-UA-Platform: "Windows"
Sec-CH-UA: "Google Chrome";v="137", "Chromium";v="137", "Not/A)Brand";v="24"
Sec-CH-UA-Mobile: ?0
Sec-CH-UA-Platform: "Windows"

Este es el conjunto básico de datos sobre la marca del navegador y el sistema operativo.

  1. Respuesta del servidor

En su respuesta, el servidor puede especificar un encabezado Accept-CH que enumere las sugerencias adicionales que necesita. Por ejemplo:

Accept-CH: Sec-CH-UA-Platform-Version, Sec-CH-UA-Arch, Sec-CH-UA-Model
Accept-CH: Sec-CH-UA-Platform-Version, Sec-CH-UA-Arch, Sec-CH-UA-Model

Esta es una orden para solicitar la versión, arquitectura y modelo del SO. El navegador luego almacena en caché este requisito y, en solicitudes posteriores al mismo dominio, agrega estos encabezados.

  1. Solicitudes posteriores

La siguiente solicitud ya se verá así:

Sec-CH-UA-Platform-Version: "10.0"
Sec-CH-UA-Arch: "x86"
Sec-CH-UA-Model: ""
Sec-CH-UA-Platform-Version: "10.0"
Sec-CH-UA-Arch: "x86"
Sec-CH-UA-Model: ""

Al final, el servidor recibe solo información general en la primera solicitud, y todo lo demás se agrega en las navegaciones posteriores tras la solicitud de Accept-CH.

Para que las CDN y los proxies almacenen en caché correctamente las diferentes versiones de contenido, el servidor también debe agregar Vary: Sec-CH-UA-Platform-Version, Sec-CH-UA-Arch. Esto es necesario, por ejemplo, si el sitio web sirve diferentes compilaciones de JavaScript para ARM y x86.

¿Qué pasa con la API de JavaScript?

Además de los encabezados HTTP, las sugerencias de UA-CH también están disponibles en el JavaScript del navegador. En los navegadores basados en Chromium, existe el objeto navigator.userAgentData, que proporciona de inmediato datos de baja entropía:

const brands = navigator.userAgentData?.brands;  // [{brand: 'Chromium', version: '137'}, ...]
const mobile = navigator.userAgentData?.mobile;  // true/false
const platform = navigator.userAgentData?.platform;  // "Windows"
const brands = navigator.userAgentData?.brands;  // [{brand: 'Chromium', version: '137'}, ...]
const mobile = navigator.userAgentData?.mobile;  // true/false
const platform = navigator.userAgentData?.platform;  // "Windows"
¿Qué pasa con la API de JavaScript?

Para obtener campos detallados (de alta entropía), se invoca una promesa, un objeto especial que describe cómo trabajar con los datos:

navigator.userAgentData.getHighEntropyValues([
  'architecture','bitness','model','platformVersion','fullVersionList','wow64'
]).then(ua => {
  console.log(ua.architecture);     // "x86"
  console.log(ua.bitness);          // "64"
  console.log(ua.platformVersion);  // "10.0"
  console.log(ua.model);            // device model or empty
  console.log(ua.fullVersionList);  // array of full versions
});
navigator.userAgentData.getHighEntropyValues([
  'architecture','bitness','model','platformVersion','fullVersionList','wow64'
]).then(ua => {
  console.log(ua.architecture);     // "x86"
  console.log(ua.bitness);          // "64"
  console.log(ua.platformVersion);  // "10.0"
  console.log(ua.model);            // device model or empty
  console.log(ua.fullVersionList);  // array of full versions
});
Para obtener campos detallados

Es importante tener en cuenta que esta API es compatible solo en navegadores Chromium (no está disponible en Safari ni Firefox), por lo que el código debe incluir una alternativa al clásico navigator.userAgent, al menos en el futuro previsible. Por el lado del servidor, también es importante verificar la presencia de encabezados Sec-CH-UA-*, porque sin ellos tendrá que depender del análisis del antiguo User-Agent.

Es importante tener en cuenta que esta API es compatible solo en navegadores Chromium

User-Agent frente a UA-CH

Veamos las diferencias clave entre el User-Agent clásico y el nuevo enfoque de Client Hints:

Característica

User‑Agent

UA‑CH (Client Hints)

Formato

una cadena larga

un conjunto de encabezados estructurados

Transmisión

siempre se envía con cada solicitud

solo se envían los campos solicitados por el servidor

Capacidad de expansión

difícil de expandir, cualquier parámetro nuevo puede romper los analizadores

flexible, se pueden agregar nuevas sugerencias bajo demanda

Análisis del lado del servidor

requiere expresiones regulares

los encabezados se leen directamente

Soporte de navegador

todos los navegadores

navegadores basados en Chromium (Chrome 89+, Edge, Opera)

Precisión en la primera carga

información completa de inmediato

solo sugerencias básicas al principio, detalles más adelante

Control del servidor

ninguno

el servidor decide qué solicitar

Riesgo de fingerprinting

alto

reducido, pero no eliminado por completo

  • Formato: el UA es una cadena larga; las UA-CH son un conjunto de encabezados HTTP estructurados (con el prefijo Sec-CH-UA-*).

  • Transmisión: el UA se envía con cada solicitud; las UA-CH solo envían lo que el servidor solicita explícitamente. El propio navegador decide qué campos agregar cuando sea necesario.

  • Extensibilidad: el UA clásico es difícil de extender (cualquier nuevo parámetro puede romper los analizadores); UA-CH es un protocolo más flexible: se pueden agregar nuevas sugerencias sin romper las existentes, ya que el servidor las solicita explícitamente.

  • Análisis: la cadena del UA tiene que dividirse y analizarse manualmente (usando expresiones regulares); las UA-CH se leen directamente desde los encabezados, lo cual es más sencillo y confiable.

  • Soporte: todos lo navegadores entienden el UA; las UA-CH están implementadas por defecto en los navegadores basados en Chromium (Chrome 89+, Octo Browser, Edge, Opera, Brave, Vivaldi y otros con el mismo motor), pero Safari y Firefox no las admiten por defecto.

  • Precisión en la primera carga: el UA clásico proporciona información completa de inmediato; las UA-CH proporcionan solo sugerencias básicas en la primera solicitud, y los detalles están disponibles solo después de una solicitud del lado del servidor (esto es importante de considerar al seleccionar las versiones del contenido).

  • Control del servidor: el UA no permite que el servidor elija qué datos se envían, siempre se transmite todo; con las UA-CH, el propio servidor decide en Accept-CH qué campos necesita.

  • Riesgo de fingerprinting: las UA-CH exponen menos información única a los rastreadores, pero esto no elimina otros métodos de unicidad del usuario (idioma, zona horaria, Canvas/WebGL, etc.). Las UA-CH solo reducen la cantidad de datos revelados en la etapa inicial, pero no resuelven por completo el problema del fingerprinting.

En resumen, las UA-CH permiten recopilar la información requerida de una manera más deliberada y consciente de la privacidad, lo que simplifica el desarrollo y aumenta la flexibilidad. Sin embargo, la transición claramente llevará tiempo. Da la sensación de que el enfoque híbrido existirá por un tiempo: donde las UA-CH estén disponibles se utilizarán, y en todos los demás lugares se seguirá analizando el viejo User-Agent.

Recomendaciones prácticas

  1. No lo solicite todo a la vez. Si especifica todas las sugerencias en Accept-CH, comienza a parecerse al fingerprinting. Solicite solo lo que realmente necesita. Por ejemplo, las imágenes adaptables se benefician de Sec-CH-Viewport-Width, Sec-CH-DPR, y Sec-CH-Width; la adaptación de la interfaz utiliza Sec-CH-UA-Mobile y Sec-CH-UA-Platform; la optimización del tráfico utiliza Sec-CH-Save-Data, Sec-CH-RTT, y Sec-CH-ECT. Evite sondeos innecesarios como solicitar todas las sugerencias de dispositivo y memoria a la vez, ya que esto puede activar los sistemas de protección.

  2. No se olvide del almacenamiento en caché. Si varía el contenido según las sugerencias del cliente, incluya siempre Vary para esos encabezados. Por ejemplo, si diferencia el contenido por Sec-CH-UA-Mobile y Sec-CH-Viewport-Width, la respuesta debe incluir Vary: Sec-CH-UA-Mobile, Sec-CH-Viewport-Width. De lo contrario, una CDN o un proxy pueden almacenar en caché la respuesta sin tener en cuenta las sugerencias requeridas y servir una versión incorrecta.

  3. Evite cambios frecuentes. El navegador almacena en caché Accept-CH. No solicite sugerencias diferentes en cada página, ya que esto aumenta la sobrecarga de encabezados.

  4. Contar con una alternativa es obligatorio. Las UA-CH aún no cubren todo el mercado. Por defecto, es mejor leer Sec-CH-UA-* o navigator.userAgentData, y si no están disponibles, recurrir al análisis del clásico User-Agent. No confíe en las UA-CH como una fuente obligatoria.

Conclusiones

Las sugerencias del cliente User-Agent no son simplemente otro encabezado, sino un intento de replantear por completo el obsoleto modelo de cadena única. Con las UA-CH, los datos del cliente se transmiten de manera estructurada y bajo demanda, lo que:

  • simplifica el trabajo del desarrollador;

  • crea oportunidades para un mayor desarrollo de la industria.

El beneficio clave de las UA-CH para los desarrolladores de analizadores y usuarios de un navegador antidetección hoy en día es el equilibrio entre la información necesaria y la facilidad de uso.

Mantén tu anonimato en línea con Octo Browser. Tu huella digital real no se puede rastrear.

¿Te gustaría probar Octo Browser con descuento?
Usa el código promocional OCTOSCRAPER para obtener un 30% de descuento en cualquier suscripción. Esta oferta solo es válida para nuevos usuarios.

Client Hints y User-Agent Client Hints

Aunque el mecanismo de Client Hints apareció por primera vez en 2013, se utilizaba para optimizar la entrega de contenido y no afectaba a la identificación del navegador. Solo con la introducción de User-Agent Client Hints comenzó a considerarse como una alternativa al User-Agent estándar.

El enfoque de Client Hints está implementado en navegadores basados en Chromium: el servidor solicita sugerencias y el navegador decide qué devolver. Esto significa que, por defecto, el navegador no envía ningún dato adicional y solo proporciona la información solicitada explícitamente por el servidor. El ejemplo más sencillo es que los desarrolladores pueden evitar el análisis complejo de la cadena User-Agent y, en su lugar, utilizar encabezados simples, sin depender de expresiones regulares.

User Agent

Con el tiempo, el User-Agent acumuló detalles y soluciones alternativas heredadas como Mozilla/5.0 (esta entrada específica existe desde la década de 1990). Esto llevó a:

  • Complejidad de análisis. Dado que el formato del User-Agent no está estandarizado, analizar la cadena requiere expresiones regulares, que no siempre son confiables. Las cadenas de User-Agent difíciles de leer se convierten en una fuente de errores y problemas de compatibilidad.

  • Fuga de datos de privacidad. El User-Agent transmite una gran cantidad de información y se envía con cada solicitud. Estos detalles permiten el seguimiento del usuario: la versión exacta del navegador, el modelo del dispositivo y la arquitectura del sistema operativo son utilizados por los rastreadores para la creación de una huella digital.

Como puede ver, había una clara necesidad de reemplazar el User-Agent por un nuevo mecanismo que fuera estructurado y controlado por el servidor, al mismo tiempo que preservara la compatibilidad y mejorara la privacidad.

Más adelante utilizaremos el término entropía. En el contexto de UA-CH, se refiere al grado de unicidad de la información transmitida. Cuanto mayor sea la entropía de un conjunto de parámetros, mayor será la posibilidad de que el navegador tenga una huella digital única, lo que a su vez ayuda a los sistemas antifraude a reconocerlo entre muchos otros perfiles.

User-Agent Client Hints (UA-CH) son un conjunto especializado de sugerencias del cliente que transmiten características del navegador y del dispositivo. En lugar de una sola cadena de UA, el navegador envía un conjunto de encabezados estructurados con el prefijo Sec-CH-UA-*, que incluyen:

  • Sec-CH-UA — una lista de marcas de navegadores y sus versiones.

  • Sec-CH-UA-Mobile ?0 o ?1 — indica si el navegador actual se considera móvil.

  • Sec-CH-UA-Platform — el nombre del sistema operativo (Windows, Android, macOS).

  • Sec-CH-UA-Platform-Version, Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Model, Sec-CH-UA-Full-Version-List — sugerencias de alta entropía con la versión exacta del SO, la arquitectura y el modelo del dispositivo. Pueden revelar información más única y, por lo tanto, solo se envían tras una solicitud explícita del servidor.

Algunas sugerencias se consideran de baja entropía: se envían de inmediato y no proporcionan información única (marca del navegador, plataforma, indicador de dispositivo móvil).

Client Hints y User-Agent Client Hints

El navegador envía sugerencias de alta entropía (versión exacta del SO, modelo de dispositivo, arquitectura y arquitectura de bits) solo después de una solicitud explícita de Accept-CH, porque proporcionan datos más únicos. De esta manera, las UA-CH permiten transmitir la misma e incluso más información en comparación con el User-Agent, pero de una manera más consciente de la privacidad y controlada por el servidor. Dicho esto, hablar de "control" es un tanto exagerado, porque técnicamente las UA-CH pueden transmitir mucha más información que el UA por sí solo, y nada impide que un servidor la solicite por completo mediante solicitudes adicionales. Desde la perspectiva del manejo de datos, las UA-CH son más convenientes y estructuradas que una cadena larga, pero los problemas de privacidad aún persisten.

Cómo funciona el intercambio de Client Hints

En la práctica, el ciclo de vida de UA-CH se ve así:

  1. La primera solicitud

En la primera solicitud, el navegador agrega por defecto sugerencias de baja entropía a los encabezados:

Sec-CH-UA: "Google Chrome";v="137", "Chromium";v="137", "Not/A)Brand";v="24"
Sec-CH-UA-Mobile: ?0
Sec-CH-UA-Platform: "Windows"

Este es el conjunto básico de datos sobre la marca del navegador y el sistema operativo.

  1. Respuesta del servidor

En su respuesta, el servidor puede especificar un encabezado Accept-CH que enumere las sugerencias adicionales que necesita. Por ejemplo:

Accept-CH: Sec-CH-UA-Platform-Version, Sec-CH-UA-Arch, Sec-CH-UA-Model

Esta es una orden para solicitar la versión, arquitectura y modelo del SO. El navegador luego almacena en caché este requisito y, en solicitudes posteriores al mismo dominio, agrega estos encabezados.

  1. Solicitudes posteriores

La siguiente solicitud ya se verá así:

Sec-CH-UA-Platform-Version: "10.0"
Sec-CH-UA-Arch: "x86"
Sec-CH-UA-Model: ""

Al final, el servidor recibe solo información general en la primera solicitud, y todo lo demás se agrega en las navegaciones posteriores tras la solicitud de Accept-CH.

Para que las CDN y los proxies almacenen en caché correctamente las diferentes versiones de contenido, el servidor también debe agregar Vary: Sec-CH-UA-Platform-Version, Sec-CH-UA-Arch. Esto es necesario, por ejemplo, si el sitio web sirve diferentes compilaciones de JavaScript para ARM y x86.

¿Qué pasa con la API de JavaScript?

Además de los encabezados HTTP, las sugerencias de UA-CH también están disponibles en el JavaScript del navegador. En los navegadores basados en Chromium, existe el objeto navigator.userAgentData, que proporciona de inmediato datos de baja entropía:

const brands = navigator.userAgentData?.brands;  // [{brand: 'Chromium', version: '137'}, ...]
const mobile = navigator.userAgentData?.mobile;  // true/false
const platform = navigator.userAgentData?.platform;  // "Windows"
¿Qué pasa con la API de JavaScript?

Para obtener campos detallados (de alta entropía), se invoca una promesa, un objeto especial que describe cómo trabajar con los datos:

navigator.userAgentData.getHighEntropyValues([
  'architecture','bitness','model','platformVersion','fullVersionList','wow64'
]).then(ua => {
  console.log(ua.architecture);     // "x86"
  console.log(ua.bitness);          // "64"
  console.log(ua.platformVersion);  // "10.0"
  console.log(ua.model);            // device model or empty
  console.log(ua.fullVersionList);  // array of full versions
});
Para obtener campos detallados

Es importante tener en cuenta que esta API es compatible solo en navegadores Chromium (no está disponible en Safari ni Firefox), por lo que el código debe incluir una alternativa al clásico navigator.userAgent, al menos en el futuro previsible. Por el lado del servidor, también es importante verificar la presencia de encabezados Sec-CH-UA-*, porque sin ellos tendrá que depender del análisis del antiguo User-Agent.

Es importante tener en cuenta que esta API es compatible solo en navegadores Chromium

User-Agent frente a UA-CH

Veamos las diferencias clave entre el User-Agent clásico y el nuevo enfoque de Client Hints:

Característica

User‑Agent

UA‑CH (Client Hints)

Formato

una cadena larga

un conjunto de encabezados estructurados

Transmisión

siempre se envía con cada solicitud

solo se envían los campos solicitados por el servidor

Capacidad de expansión

difícil de expandir, cualquier parámetro nuevo puede romper los analizadores

flexible, se pueden agregar nuevas sugerencias bajo demanda

Análisis del lado del servidor

requiere expresiones regulares

los encabezados se leen directamente

Soporte de navegador

todos los navegadores

navegadores basados en Chromium (Chrome 89+, Edge, Opera)

Precisión en la primera carga

información completa de inmediato

solo sugerencias básicas al principio, detalles más adelante

Control del servidor

ninguno

el servidor decide qué solicitar

Riesgo de fingerprinting

alto

reducido, pero no eliminado por completo

  • Formato: el UA es una cadena larga; las UA-CH son un conjunto de encabezados HTTP estructurados (con el prefijo Sec-CH-UA-*).

  • Transmisión: el UA se envía con cada solicitud; las UA-CH solo envían lo que el servidor solicita explícitamente. El propio navegador decide qué campos agregar cuando sea necesario.

  • Extensibilidad: el UA clásico es difícil de extender (cualquier nuevo parámetro puede romper los analizadores); UA-CH es un protocolo más flexible: se pueden agregar nuevas sugerencias sin romper las existentes, ya que el servidor las solicita explícitamente.

  • Análisis: la cadena del UA tiene que dividirse y analizarse manualmente (usando expresiones regulares); las UA-CH se leen directamente desde los encabezados, lo cual es más sencillo y confiable.

  • Soporte: todos lo navegadores entienden el UA; las UA-CH están implementadas por defecto en los navegadores basados en Chromium (Chrome 89+, Octo Browser, Edge, Opera, Brave, Vivaldi y otros con el mismo motor), pero Safari y Firefox no las admiten por defecto.

  • Precisión en la primera carga: el UA clásico proporciona información completa de inmediato; las UA-CH proporcionan solo sugerencias básicas en la primera solicitud, y los detalles están disponibles solo después de una solicitud del lado del servidor (esto es importante de considerar al seleccionar las versiones del contenido).

  • Control del servidor: el UA no permite que el servidor elija qué datos se envían, siempre se transmite todo; con las UA-CH, el propio servidor decide en Accept-CH qué campos necesita.

  • Riesgo de fingerprinting: las UA-CH exponen menos información única a los rastreadores, pero esto no elimina otros métodos de unicidad del usuario (idioma, zona horaria, Canvas/WebGL, etc.). Las UA-CH solo reducen la cantidad de datos revelados en la etapa inicial, pero no resuelven por completo el problema del fingerprinting.

En resumen, las UA-CH permiten recopilar la información requerida de una manera más deliberada y consciente de la privacidad, lo que simplifica el desarrollo y aumenta la flexibilidad. Sin embargo, la transición claramente llevará tiempo. Da la sensación de que el enfoque híbrido existirá por un tiempo: donde las UA-CH estén disponibles se utilizarán, y en todos los demás lugares se seguirá analizando el viejo User-Agent.

Recomendaciones prácticas

  1. No lo solicite todo a la vez. Si especifica todas las sugerencias en Accept-CH, comienza a parecerse al fingerprinting. Solicite solo lo que realmente necesita. Por ejemplo, las imágenes adaptables se benefician de Sec-CH-Viewport-Width, Sec-CH-DPR, y Sec-CH-Width; la adaptación de la interfaz utiliza Sec-CH-UA-Mobile y Sec-CH-UA-Platform; la optimización del tráfico utiliza Sec-CH-Save-Data, Sec-CH-RTT, y Sec-CH-ECT. Evite sondeos innecesarios como solicitar todas las sugerencias de dispositivo y memoria a la vez, ya que esto puede activar los sistemas de protección.

  2. No se olvide del almacenamiento en caché. Si varía el contenido según las sugerencias del cliente, incluya siempre Vary para esos encabezados. Por ejemplo, si diferencia el contenido por Sec-CH-UA-Mobile y Sec-CH-Viewport-Width, la respuesta debe incluir Vary: Sec-CH-UA-Mobile, Sec-CH-Viewport-Width. De lo contrario, una CDN o un proxy pueden almacenar en caché la respuesta sin tener en cuenta las sugerencias requeridas y servir una versión incorrecta.

  3. Evite cambios frecuentes. El navegador almacena en caché Accept-CH. No solicite sugerencias diferentes en cada página, ya que esto aumenta la sobrecarga de encabezados.

  4. Contar con una alternativa es obligatorio. Las UA-CH aún no cubren todo el mercado. Por defecto, es mejor leer Sec-CH-UA-* o navigator.userAgentData, y si no están disponibles, recurrir al análisis del clásico User-Agent. No confíe en las UA-CH como una fuente obligatoria.

Conclusiones

Las sugerencias del cliente User-Agent no son simplemente otro encabezado, sino un intento de replantear por completo el obsoleto modelo de cadena única. Con las UA-CH, los datos del cliente se transmiten de manera estructurada y bajo demanda, lo que:

  • simplifica el trabajo del desarrollador;

  • crea oportunidades para un mayor desarrollo de la industria.

El beneficio clave de las UA-CH para los desarrolladores de analizadores y usuarios de un navegador antidetección hoy en día es el equilibrio entre la información necesaria y la facilidad de uso.

Mantente al día de las últimas noticias sobre Octo Browser

Al hacer clic en el botón, aceptas nuestra Política de privacidad.

Mantente al día de las últimas noticias sobre Octo Browser

Al hacer clic en el botón, aceptas nuestra Política de privacidad.

Mantente al día de las últimas noticias sobre Octo Browser

Al hacer clic en el botón, aceptas nuestra Política de privacidad.

Únete a Octo Browser ahora

O contacta al servicio al cliente en cualquier momento si tienes alguna pregunta.

Únete a Octo Browser ahora

O contacta al servicio al cliente en cualquier momento si tienes alguna pregunta.

Únete a Octo Browser ahora

O contacta al servicio al cliente en cualquier momento si tienes alguna pregunta.

©

2026

Octo Browser

©

2026

Octo Browser

©

2026

Octo Browser