Su navegador envía su agente de usuario a cada sitio web al que se conecta. Hemos escrito sobre cambiar el agente de usuario de su navegador antes, pero ¿qué es exactamente un agente de usuario, de todos modos?
Un agente de usuario es una “cadena”, es decir, una línea de texto, que identifica el navegador y el sistema operativo del servidor web. Esto suena simple, pero los agentes de usuario se han convertido en un desastre con el tiempo.
¿De qué vamos a hablar?
Lo básico
Cuando su navegador se conecta a un sitio web, incluye un campo User-Agent en su encabezado HTTP. El contenido del campo del agente de usuario varía de un navegador a otro. Cada navegador tiene su propio agente de usuario distintivo. Esencialmente, un agente de usuario es una forma para que un navegador diga “Hola, soy Mozilla Firefox en Windows” o “Hola, soy Safari en un iPhone” a un servidor web.
El servidor web puede utilizar esta información para servir diferentes páginas web a diferentes navegadores web y diferentes sistemas operativos. Por ejemplo, un sitio web podría enviar páginas móviles a navegadores móviles, páginas modernas a navegadores modernos y un mensaje de “actualice su navegador” a Internet Explorer 6.
Examen de agentes de usuario
Por ejemplo, aquí está el agente de usuario de Firefox en Windows 7:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0
Este agente de usuario le dice bastante al servidor web: el sistema operativo es Windows 7 (nombre en código Windows NT 6.1), es una versión de 64 bits de Windows (WOW64) y el navegador en sí es Firefox 12.
Ahora echemos un vistazo al agente de usuario de Internet Explorer 9, que es:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Tridente/5.0)
La cadena de agente de usuario identifica el navegador como IE 9 con el motor de representación Trident 5. Sin embargo, es posible que detecte algo confuso: IE se identifica como Mozilla.
Volveremos a eso en un minuto. Primero, examinemos también el agente de usuario de Google Chrome:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, como Gecko) Chrome/19.0.1084.52 Safari/536.5
La trama se espesa: Chrome pretende ser tanto Mozilla como Safari. Para entender por qué, tendremos que examinar el historial de agentes de usuario y navegadores.
El lío de cadenas del agente de usuario
Mosaic fue uno de los primeros navegadores. Su cadena de agente de usuario era NCSA_Mosaic/2.0. Más tarde, apareció Mozilla (más tarde renombrado Netscape), y su agente de usuario fue Mozilla / 1.0. Mozilla era un navegador más avanzado que Mosaic, en particular, admitía marcos. Los servidores web comprobaron que el agente de usuario contenía la palabra Mozilla y enviaba páginas que contenían marcos a los navegadores Mozilla. A otros navegadores, los servidores web enviaron las páginas antiguas sin marcos.
Eventualmente, apareció Internet Explorer de Microsoft y también admitió marcos. Sin embargo, IE no recibió páginas web con marcos, porque los servidores web simplemente las enviaron a los navegadores Mozilla. Para solucionar este problema, Microsoft agregó la palabra Mozilla a su agente de usuario y arrojó información adicional (la palabra “compatible” y una referencia a IE). Los servidores web estaban felices de ver la palabra Mozilla y enviaron a IE las páginas web modernas. Otros navegadores que vinieron después hicieron lo mismo.
Eventualmente, algunos servidores buscaron la palabra Gecko, el motor de renderizado de Firefox, y sirvieron a los navegadores Gecko páginas diferentes a las de los navegadores más antiguos. KHTML, originalmente desarrollado para Konquerer en el escritorio KDE de Linux, agregó las palabras “como Gecko” para que también obtuvieran las páginas modernas diseñadas para Gecko. WebKit se basó en KHTML: cuando se desarrolló, agregaron la palabra WebKit y mantuvieron la línea original “KHTML, como Gecko” para fines de compatibilidad. De esta manera, los desarrolladores de navegadores siguieron agregando palabras a sus agentes de usuario a lo largo del tiempo.
A los servidores web realmente no les importa cuál es la cadena exacta del agente de usuario, solo verifican si contiene una palabra específica.
Usos
Los servidores web utilizan agentes de usuario para una variedad de propósitos, que incluyen:
- Servir diferentes páginas web a diferentes navegadores web. Esto se puede usar para bien, por ejemplo, para servir páginas web más simples a navegadores más antiguos, o para mal, por ejemplo, para mostrar un mensaje “Esta página web debe verse en Internet Explorer”.
- Mostrar contenido diferente a diferentes sistemas operativos, por ejemplo, mostrando una página adelgazada en dispositivos móviles.
- Recopilación de estadísticas que muestran los navegadores y sistemas operativos en uso por sus usuarios. Si alguna vez ve las estadísticas de participación de mercado del navegador, así es como se adquieren.
Los bots de rastreo web también usan agentes de usuario. Por ejemplo, el rastreador web de Google se identifica como:
Googlebot/2.1 (+http://www.google.com/bot.html)
Los servidores web pueden dar a los bots un tratamiento especial, por ejemplo, permitiéndoles pasar por pantallas de registro obligatorias. (Sí, thesto significa que a veces puede omitir las pantallas de registro configurando su agente de usuario en Googlebot).
Los servidores web también pueden dar órdenes a bots específicos (o a todos los bots) utilizando el archivo robots.txt. Por ejemplo, un servidor web podría decirle a un bot específico que desaparezca, o decirle a otro bot que solo indexe ciertas áreas del sitio web. En el archivo robots.txt, los bots se identifican por sus cadenas de agente de usuario.
Todos los navegadores principales contienen formas de establecer agentes de usuario personalizados, para que pueda ver a qué se envían los servidores web a diferentes navegadores. Por ejemplo, configure su navegador de escritorio en la cadena de agente de usuario de un navegador móvil y verá las versiones móviles de las páginas web en su escritorio.