En el vasto universo del desarrollo web, constantemente surgen nuevas tecnologías y estándares que buscan mejorar la interacción entre navegadores y servidores. Uno de estos avances es el header sec-ch-ua. Si eres desarrollador o simplemente un curioso de la tecnología, este artículo te explicará en detalle qué es el sec-ch-ua, cómo funciona y por qué es importante.
¿Qué es el sec-ch-ua?
El sec-ch-ua es un header de solicitud (request header) que forma parte de los “User Agent Client Hints”. Este header experimental proporciona información sobre la marca y la versión significativa del user agent (agente de usuario), permitiendo a los servidores personalizar sus respuestas basándose en esta información.
Este header solo está disponible en contextos seguros, es decir, bajo HTTPS. Además, su uso en producción debe considerarse cuidadosamente debido a su naturaleza experimental. Utilizar el sec-ch-ua en un contexto seguro asegura que la comunicación entre el navegador y el servidor esté cifrada y protegida contra intercepciones.
Tipo de header
- Tipo de header: El sec-ch-ua es un request header, lo que significa que es enviado por el cliente (navegador) al servidor como parte de la solicitud HTTP. Específicamente, es un client hint, una categoría de headers diseñados para proporcionar información adicional que puede ayudar al servidor a optimizar la respuesta para el cliente.
- Nombre de header prohibido: En la especificación de HTTP, ciertos headers están prohibidos para ser modificados o establecidos por scripts de cliente (como JavaScript) por razones de seguridad. El sec-ch-ua está entre estos headers prohibidos, lo que significa que no puede ser alterado directamente por el código del cliente, asegurando que la información proporcionada sea fiable y no manipulada maliciosamente.
¿Cómo funciona el sec-ch-ua?
El sec-ch-ua proporciona una lista separada por comas de marcas (brands) y sus versiones significativas asociadas con el user agent. Cada marca es un nombre comercial para el user agent, como Chromium, Opera, Google Chrome, Microsoft Edge, Firefox y Safari.
Sintaxis
La sintaxis del sec-ch-ua es la siguiente:
Sec-CH-UA: "<brand>";v="<significant version>", ...
Donde <brand>
es la marca asociada con el user agent y <significant version>
es el número de versión que distingue entre las principales versiones de la marca.
Ejemplos
A continuación, se muestran algunos ejemplos de cadenas del sec-ch-ua:
Sec-CH-UA: "(Not(A:Brand";v="8", "Chromium";v="98"
Sec-CH-UA: " Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"
Sec-CH-UA: " Not A;Brand";v="99", "Chromium";v="96", "Microsoft Edge";v="96"
Sec-CH-UA: "Opera";v="81", " Not;A Brand";v="99", "Chromium";v="95"
Beneficios del sec-ch-ua
- Personalización del contenido: El uso del sec-ch-ua permite a los servidores personalizar su contenido basándose en la información proporcionada por el user agent. Esto puede incluir la optimización de recursos, el ajuste de funcionalidades y la mejora de la experiencia del usuario.
- Reducción de la entropía: El sec-ch-ua es una pista de baja entropía, lo que significa que proporciona información limitada y menos detallada sobre el user agent en comparación con otros métodos. Esto puede ayudar a proteger la privacidad del usuario mientras sigue permitiendo cierta personalización.
- Prevención de rechazos: El header puede incluir “marcas falsas” en cualquier posición y con cualquier nombre. Esta característica está diseñada para evitar que los servidores rechacen user agents desconocidos, forzando a estos a mentir sobre su identidad de marca.
¿Es efectivo el uso de sec-ch-ua?
Un estudio reciente titulado Unveiling the Impact of User-Agent Reduction and Client Hints: A Measurement Study, por Gunes Acar, midió el impacto de algunos cambios analizando los 100K sitios web más populares. Los resultados muestran que:
- Los encabezados y API de UA-CH de alta entropía (muy identificadores) son accedidos por uno o más scripts en el 59.2% de los sitios visitados.
- El 93.8% de estos accesos fueron realizados por scripts relacionados con rastreo publicitario, principalmente de dominios de terceros propiedad de Google.
- En total, scripts de aproximadamente 9K dominios distintos de nivel superior registrables (eTLD+1) aprovechan este acceso sin restricciones para obtener los UA-CH de alta entropía.
- En el 91.6% de los sitios donde se accede a los UA-CH de alta entropía, esto se hace a través de scripts de terceros.
Esto para concluir que, si bien los UA-CH fueron introducidos para mejorar la privacidad al reducir la información en la cadena de agente de usuario, este estudio muestra que están siendo ampliamente utilizados por scripts de terceros, principalmente de rastreo y publicidad, para obtener información detallada sobre los navegadores de los usuarios.
Limitaciones y consideraciones
Teniendo en cuenta este estudio, algunas de las limitaciones que presenta esta tecnología son:
- Disponibilidad limitada: Como tecnología experimental, el sec-ch-ua no está disponible en todos los navegadores y puede estar sujeto a cambios. Es crucial verificar la tabla de compatibilidad de navegadores antes de usarlo en producción.
- Necesidad de contextos seguros: Dado que solo está disponible en contextos seguros (HTTPS), su implementación requiere que el sitio web esté correctamente configurado para soportar conexiones seguras.
El sec-ch-ua es una herramienta poderosa y versátil para los desarrolladores web que buscan optimizar la experiencia del usuario basándose en la información del user agent. Aunque es experimental y tiene sus limitaciones, su uso adecuado puede llevar a una personalización significativa del contenido y una mejor interacción entre navegadores y servidores.
Si este tema te ha resultado interesante y quieres profundizar en las tecnologías web que están transformando la industria, te invitamos a unirte a los bootcamps de KeepCoding. Nuestro bootcamp en desarrollo web no solo te proporcionará conocimientos avanzados, sino que también te preparará para una carrera exitosa en el sector tecnológico, un ámbito con alta demanda de profesionales y excelentes oportunidades laborales. ¡Transforma tu vida y únete a la revolución tecnológica con KeepCoding!