En una conexión a un servidor mediante el protocolo HTTP se manda información sobre el sistema utilizado por el usuario. Esta información es el User-Agent o «Agente de usuario» y se envía en los encabezados HTTP de la conexión.
En los datos enviados del cliente se refleja información como el sistema operativo utilizado y el navegador web, indicándose sus respectivas versiones.
El User-Agent es un campo de texto con una sintaxis como esta:
<Producto> / <Versión del producto> <Comentarios>
Algunos ejemplos reales de User-Agent:
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTM L, like Gecko) Chrome/51.0.2704.103 Safari/537.36
Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTM L, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1
Esta información es útil para los desarrolladores. Por un lado permite hacer estadísticas de uso de una aplicación web, saber si los usuarios se conectan desde móviles, tablets, ordenadores, y los sistemas operativos y navegadores usados. Por otro lado facilita la detección de errores que puedan ocasionarse para un sistema o plataforma determinado.
Algunos bots, crawlers o sistemas informáticos de exploración sitios web se identifican con un User-Agent propio. Por ejemplo, el robot de Google encargado de rastrear los sitios web para su posterior indexación en el buscador se identifica como «Googlebot». En la documentación de Google puedes consultar los user-agents de sus rastreadores.
La información del usuario enviada en los encabezados HTTP puede cambiarse fácilmente. Hay aplicaciones y extensiones de navegadores para ello. Es una práctica relativamente habitual modificar el User-Agent durante el desarrollo y mantenimiento de una aplicación online para simular una conexión desde un sistema concreto.
Existe software malicioso (malware) que hace uso del User-Agent para su beneficio. Por ejemplo, una web infectada podría verse de manera normal y funcional para cualquier usuario, pero mostrar otros contenidos totalmente diferentes para el rastreador de Google. De esta forma podría, por ejemplo, perjudicar el SEO de la web atacada, o aprovecharse de ella para obtener enlaces de calidad y propiciar el posicionamiento de otros sitios. Todo ello sin que los usuarios y el propietario de la web afectada lleguen quizás a notarlo.