Su navegador envía su agente de usuario a todos los sitios web a los que se conecta. Ya hemos escrito sobre cómo cambiar el agente de usuario de su navegador, pero ¿qué es exactamente un agente de usuario?
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. Suena simple, pero los agentes de usuario se han convertido en un desastre con el tiempo.
Los conceptos básicos
Cuando su navegador se conecta a un sitio web, incluye un campo de agente de usuario 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. Básicamente, un agente de usuario es una forma de 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 usar esta información para entregar diferentes páginas web a diferentes navegadores web y diferentes sistemas operativos. Por ejemplo, un sitio web puede enviar páginas móviles a navegadores móviles, páginas modernas a navegadores modernos y un mensaje «actualice su navegador» a Internet Explorer 6.
Examinar 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 mucho al servidor web: el sistema operativo es Windows 7 (nombre en clave 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 para Internet Explorer 9, que es:
Mozilla / 5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident / 5.0)
La cadena de agente de usuario identifica el navegador como IE 9 con el renderizador Trident 5. Sin embargo, es posible que observe algo confuso: IE se identifica a sí mismo como Mozilla.
Llegaremos a eso en un minuto. Primero, echemos un vistazo también al 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 complica: Chrome afirma ser tanto Mozilla como Safari. Para entender por qué, necesitaremos mirar el historial de agentes de usuario y navegadores.
El lío de las cadenas de agentes de usuario
Mosaic fue uno de los primeros navegadores. Su cadena de agente de usuario era NCSA_Mosaic / 2.0. Más tarde, llegó Mozilla (más tarde rebautizado como 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 verificaron que el agente de usuario contenía la palabra Mozilla y enviaron páginas que contenían marcos a los navegadores de Mozilla. A otros navegadores, los servidores web enviaban páginas antiguas sin marcos.
Finalmente, apareció Internet Explorer de Microsoft y también admitió marcos. Sin embargo, IE no recibió ninguna página web con marcos, ya que los servidores web simplemente las enviaron a los navegadores de Mozilla. Para resolver este problema, Microsoft agregó la palabra Mozilla a su agente de usuario y agregó información adicional (la palabra «compatible» y una referencia a IE). Los servidores web se alegraron de ver la palabra Mozilla y enviaron a IE las páginas web modernas. Otros navegadores que vinieron después hicieron lo mismo.
Finalmente, algunos servidores buscaron la palabra Gecko, el motor de renderizado de Firefox, y entregaron a los navegadores Gecko páginas diferentes a las de los navegadores más antiguos. KHTML, desarrollado originalmente para Konquerer en el escritorio KDE de Linux, agregó las palabras «como Gecko» para que también obtengan páginas modernas diseñadas para Gecko. WebKit se basó en KHTML – durante su desarrollo agregaron la palabra WebKit y mantuvieron la línea original «KHTML, como Gecko» por compatibilidad. De esta manera, los desarrolladores de navegadores continuaron agregando palabras a sus agentes de usuario a lo largo del tiempo.
Los servidores web realmente no se preocupan por 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:
- Sirve diferentes páginas web a diferentes navegadores web. Esto se puede usar para bien, por ejemplo, para ofrecer páginas web más simples a navegadores más antiguos, o para mal, por ejemplo, para mostrar el mensaje «Esta página web debe verse en Internet Explorer».
- Muestre contenido diferente en diferentes sistemas operativos, por ejemplo, mostrando una página clara en dispositivos móviles.
- Recopile estadísticas que muestren los navegadores y sistemas operativos utilizados por sus usuarios. Si alguna vez ve estadísticas sobre la cuota de mercado de los navegadores, así es como se obtienen.
Los rastreadores web también utilizan agentes de usuario. Por ejemplo, el rastreador web de Google se identifica de la siguiente manera:
Googlebot / 2.1 (+ https: //www.google.com/bot.html)
Los servidores web pueden dar un tratamiento especial a los robots, por ejemplo, autorizándolos a través de pantallas de registro obligatorias. (Sí, eso significa que a veces puede omitir las pantallas de registro configurando su agente de usuario en Googlebot).
Los servidores web también pueden emitir pedidos a robots específicos (o todos los robots) utilizando el archivo robots.txt. Por ejemplo, un servidor web podría decirle a un bot específico que se vaya u otro bot que indexe solo ciertas áreas del sitio web. En el archivo robots.txt, los robots se identifican por sus cadenas de agente de usuario.
Todos los navegadores principales contienen formas de definir agentes de usuario personalizados, para que pueda ver a qué servidores web envían los diferentes navegadores. Por ejemplo, configure su navegador de escritorio con 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.