Cuando un usuario accede a una página web, la aplicación generalmente envía una cadena de texto que identifica al agente de usuario ante el servidor. Este texto forma parte de la petición a través de HTTP, llevando como prefijo User-agent: o User-Agent: y generalmente incluye información como el nombre de la aplicación, la versión, el sistema operativo, y el idioma. Los bots, como los web crawlers, a veces incluyen también una URL o una dirección de correo electrónico para que el administrador del sitio web pueda contactarse con el operador del mismo.
La identificación de agente de usuario es uno de los criterios de exclusión utilizado por el Estándar de exclusión de robots para impedir el acceso a ciertas secciones de un sitio web.
El user-agent es una cadena de texto que incluye información sobre el dispositivo o software que se comunica con el servidor.
Los navegadores suelen incluirlo pero se puede modificar de muchas formas distintas. En Mozilla Firefox escribiendo la url about:config buscando el user-agent puedes modificar el string y utilizar el que tu quieras. Otra forma es crafteando las peticiones a mano o mediante software, o utilizando un proxy (hay apps y extensiones como webscarab, burpsuite y httpheaders) para intervenir la cabecera y modificarla antes de enviarla al servidor.
Entre otras cosas sirve para que puedas dar versiones distintas de tu web para distintos navegadores. Así aseguras la compatibilidad.
Ejemplos:
Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko; googleweblight) Chrome/38.0.1025.166 Mobile Safari/535.19
Mozilla/5.0 (Linux; U; Android 9; es-es; MI 8 Lite Build/PKQ1.181007.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.141 Mobile Safari/537.36 XiaoMi/MiuiBrowser/11.1.7-g
# advertising-related bots:
User-agent: Mediapartners-Google* Disallow: /
# Wikipedia work bots:
User-agent: IsraBot
Disallow:
User-agent: Orthogaffe
Disallow:
Los bots que siguen la legalidad suelen usar siempre el mismo user-agent. Como ves, wikipedia en el archivo robots.txt indica a que bots permite acceder a donde.
Tiene sus 2 bots propios de wikipedia a los que les permite acceder a cualquier ruta para que trabajen sin limitaciones. Ya que el disallow: lo deja vacio, es decir no le prohibe nada.
En cambio al bot con el User-Agent de Mediapartners-Google le indica que no quiere que acceda a wikipedia. Este es el user-agent que utiliza el servicio de Ad-Sense.
La cabecera X-Mailer cumple el mismo propósito y unos pocos más pero para el correo. Casi todos los servicios de correo te permiten ver las cabezeras. En gmail por ejemplo entras a cualquier correo recibido y cerca de la flecha de responder te aparece algo como Show Original o algo similar. Le das y puedes ver las cabeceras del correo. X-Mailer incluido.