6 puntos por kunggom 2020-01-15 | Aún no hay comentarios. | Compartir por WhatsApp

Al desarrollar para la web, a menudo se muestra una pantalla distinta según el tipo de navegador o el sistema operativo, o bien se necesita procesar estadísticas sobre la plataforma que usa quien se conecta. Una de las cosas que se usan en ese caso es justamente la cadena de [User Agent] que el navegador agrega al encabezado de solicitud HTTP. Aunque distinguir la plataforma y el navegador por este medio se usa ampliamente, esta cadena ya era confusa y enredada desde la época de Netscape por motivos como la compatibilidad. Ahora ni hablar: casi todos los navegadores fingen ser otros navegadores.

Por ejemplo, la cadena de User Agent de cierto navegador que estoy usando es la siguiente:

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4003.0 Safari/537.36 Edg/81.0.381.0

Si solo se tuviera esta cadena de User Agent sin ningún otro conocimiento previo, sería imposible saber qué navegador es exactamente. ¿Mozilla Firefox? ¿Chrome? ¿Safari? ¿Edge? La respuesta correcta es Microsoft Edge versión Dev. Parece que al menos la plataforma de uso se puede distinguir hasta cierto punto, pero si se quiere parsear esta cadena para identificar la plataforma, vuelve a ser un dolor de cabeza.

Para resolver este problema, Google propuso dejar de usar gradualmente la cadena de User Agent y, en su lugar, usar algo llamado [Client Hints]. Client Hints significa separar la información que hoy aparece en la cadena de User Agent en 7 campos (nombre del navegador / versión mayor del navegador / versión completa del navegador / nombre y versión de la plataforma / arquitectura de la plataforma / nombre del modelo de hardware / si es móvil o no) y agregarlos al encabezado de solicitud HTTP.

Google dice que dentro de este año (2020) planea fijar la cadena de User Agent de Google Chrome para que ya no cambie más (no puede eliminarla por problemas de compatibilidad) y, en cambio, comenzar a usar estos Client Hints. Parece que otros grandes fabricantes de navegadores web como Mozilla, Apple y Microsoft también tienen planes de dar soporte a esto, pero todavía no se han dado a conocer detalles concretos. Si otros navegadores web también empiezan a usarlo, no parece que vaya a haber grandes obstáculos para su adopción. Aun así, viendo la forma en que Google discrimina servicios cuando no se usa su propio navegador, tampoco da la impresión de que se pueda recibir esta propuesta con los brazos abiertos.

Contenido de la propuesta de Client Hints de Google:

https://wicg.github.io/ua-client-hints/

Historia de la cadena de User Agent:

http://millky.com/@origoni/post/566

Aún no hay comentarios.

Aún no hay comentarios.