# Agente de usuario

Un agente de usuario es una aplicación informática que funciona como cliente en un protocolo de red; el nombre se aplica generalmente para referirse a aquellas aplicaciones que acceden a la World Wide Web. Los agentes de usuario que se conectan a la Web pueden ser desde navegadores web hasta los web crawler de los buscadores, pasando por teléfonos móviles, lectores de pantalla y navegadores en Braille usados por personas con discapacidades.
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.

## Tipos de agentes de usuario

Los agentes pueden estar instalados en el ordenador o ser utilizados directamente desde la web, y se puede encontrar distintos tipos de agentes que se especializan en diferentes tareas:

### 1.1 Agentes de búsqueda

Un agente de búsqueda es un programa que, imitando el comportamiento de una persona y actuando de forma autónoma, recorre automáticamente internet aprovechando la estructura de enlaces de la web. Un agente de búsqueda puede recuperar un documento en particular, o utilizar algún algoritmo de búsqueda que permita recuperar distintos documentos de la web a los que se hace referencia en un documento fuente u origen, o conforme a unos criterios predefinidos anteriormente por sus usuarios.
Un agente de búsqueda puede realizar las siguientes funciones:
* Realizar consultas con una velocidad y en un conjunto de fuentes mucho mayor que el posible para un usuario humano.
* Consultar a la vez los contenidos de distintos sitios web.
* Informar de las actualizaciones que se producen en los sitios web que son de interés.
* Agilizar las descargas que se realizan de internet.
* Eliminación de correo basura o spam
* Búsqueda de noticias conforme a las preferencias.
El usuario facilita una consulta a un agente una sola vez, y automáticamente el agente la envía a diferentes fuentes o buscadores. Estos agentes pueden ser generales, estar especializados en la búsqueda de música, personas, imágenes, etc. Generalmente son arañas que navegan a través de diversas páginas web, e indexan los hiperenlaces que van encontrando y siguiendo. Por ejemplo, Google Search, Bing o DuckDuckGo.

### 1.2 Agentes web

Un agente web es un programa que es capaz de visualizar un recurso en la web, típicamente, una página web. Generalmente los agentes web suelen ser navegadores web, que solicitan uno o más recursos típicamente mediante HTTP o HTTPS, como documentos HTML, hojas de estilos CSS, y scripts. Google Chrome, Mozilla Firefox o Opera son algunos ejemplos de agentes web.

### 1.3 Robots de compra

Los robots de compra permiten comparar los precios de diferentes sitios de comercio electrónico manteniéndonos bien informados antes de comprar, o continuamente al día de los precios que establece nuestra competencia.

### 1.4 Robots de entretenimiento

Ayudan a sus usuarios a llevar a cabo distintas tareas, como la lectura del correo, etc. Con estos agentes podemos acceder a la vez en un gran número de servidores, siendo especialmente útiles para la búsqueda de información que no está indexada por los buscadores, como bases de datos, etc.

### 1.5 Mapeadores

Analizan diferentes sitios web y extraen datos sobre su estructura y contenido permitiendo hacer evaluaciones o comparativas entre ellos.

## Suplantación de la identificación de agente de usuario

En varios momentos durante la primera guerra de navegadores, alguno de los diferentes navegadores web dominó el mercado, al punto de que los sitios web eran diseñados y adaptados para funcionar con ese navegador en particular, en lugar de respetar los estándares propuestos por organismos como W3C y IETF. Este tipo de sitios generalmente incluye código que inspecciona qué agente de usuario realiza el pedido y altera el contenido de la respuesta acorde a cada uno; esta técnica es generalmente conocida por su nombre en inglés, browser sniffing. Esto generalmente resulta en que navegadores poco conocidos reciben solo parte del contenido original, aunque sean capaces de mostrar el contenido completo de manera correcta; en casos extremos pueden tener bloqueado el acceso al sitio. Debido a esto, varios navegadores suplantan la identificación de agente de usuario, identificándose como otro navegador para burlar la detección; generalmente, la identificación real del navegador se mantiene en la identificación de agente de usuario. Este tipo de técnica es conocida generalmente por su nombre en inglés, user-agent spoofing.
El ejemplo más antiguo de esta técnica se da en la identificación de agente de usuario de Internet Explorer; esta comienza en Mozilla/<version> (compatible; MSIE <version>..., para poder recibir el mismo contenido destinado a Netscape Navigator, su principal rival al momento de su desarrollo. Este formato para la identificación ha sido copiado por varios otros agentes de usuario, dada la alta cuota de mercado de Internet Explorer. Nótese que la mención a Mozilla no es una referencia a la suite de Internet Mozilla Application Suite, que fue desarrollada varios años más tarde, sino al nombre clave original de Netscape Navigator, que es también el nombre de la mascota de la compañía Netscape.
Al convertirse Internet Explorer en el navegador dominante, otros productos como Mozilla Firefox, Safari y Opera, implementaron en distintos momentos funcionalidades para que el usuario pudiera elegir una identificación falsa, como podría ser la de la última versión de Internet Explorer. Algunos navegadores copian literalmente la identificación de otros navegadores. En algunos casos los navegadores, como Opera, ofrecen la posibilidad de agregar al final de la identificación falsa una mención a la identificación real. Esta última técnica resulta en una identificación que contiene tres nombres y versiones: primero, el agente de usuario que se asegura ser Mozilla (Netscape Navigator); luego, MSIE (Internet Explorer); y finalmente, el verdadero navegador, por ejemplo Opera.
Aparte de los navegadores web, otras aplicaciones que trabajan sobre el protocolo HTTP, como los gestores de descargas, también incluyen funcionalidades que permiten al usuario elegir diferentes identificaciones. Esto se debe presumiblemente a una intención de mantener compatibilidad con ciertos servidores (algunos servidores bloquean el acceso a estos programas, porque su uso indiscriminado redunda en un excesivo consumo del ancho de banda y una lentitud general del sistema).
Se espera que este dialelo continúe en el área de los navegadores web; por tal razón, algunos desarrolladores han comenzado la campaña Viewable With Any Browser (en inglés, Visible con cualquier navegador), que recomienda a los desarrolladores diseñar páginas web de acuerdo a los estándares y no a la implementación de un navegador en particular.
Para 2005, muchos más sitios web comenzaron a respetar los estándares, pero aun así siguen apareciendo casos de código JavaScript desactualizado, que solo permite el acceso a los navegadores Internet Explorer y Netscape Navigator. Esta costumbre suele explicarse culpando a los desarrolladores de reciclar código sin entender cómo funciona y qué efectos tiene.
Una de las consecuencias de la suplantación del agente de usuario es que las estadísticas sobre el uso de Internet Explorer resultan poco precisas, dada la cantidad de aplicaciones que se identifican como tal. La suplantación también puede resultar en una problema de seguridad si un motor de búsqueda cambia su identificación y consigue acceder a ciertas secciones sensibles de un sitio web.

## Verificación del agente de usuario

La verificación del agente de usuario —técnica más conocida por su nombre en inglés, user agent sniffing— se refiere a la costumbre de ciertos sitios web de mostrar contenidos diferentes según el agente de usuario; en Internet, esto implica mostrar diferentes contenidos según el navegador web. Un triste ejemplo de esta práctica es Outlook 2003 Web Access, de Microsoft; Internet Explorer tiene acceso a funcionalidades no disponibles si se accede con otro navegador web. La verificación y consecuente discriminación según el agente de usuario es considerada generalmente una mala costumbre, porque implica un diseño diferente para cada situación. Generalmente se les recomienda a los responsables de sitios web que utilizan código HTML respetar tanto como sea posible los estándares para lograr un resultado similar con navegadores diferentes.
Los sitios web desarrollados específicamente para teléfonos móviles, como el portal Vodafone Live! de Vodafone, generalmente buscan identificar al agente de usuario, ya que los navegadores web disponibles para estos dispositivos suelen diferir mucho entre sí. Aunque los navegadores web en este ámbito han mejorado con el tiempo, todavía existe un mercado de dispositivos móviles anticuados, que no tienen acceso a estas nuevas tecnologías. Por lo tanto, los sitios web dirigidos a este mercado generalmente muestran un código fuente totalmente diferente, según el dispositivo y navegador con el que se accede. Estas diferencias pueden ser mínimas (por ejemplo, reducir el tamaño de las imágenes para que se vean adecuadamente en pantallas más pequeñas) o mucho más importantes (por ejemplo, utilizar WML en lugar de XHTML).

## Capacidad de cifrado "U"/"I"/"N"

Netscape, Mozilla, Opera y otros desarrolladores web utilizan una de estas letras para especificar la capacidad de cifrado del navegador. Dado que anteriormente el gobierno de los Estados Unidos de América no permitía la exportación de tecnología de cifrado mayor a 40-bit, se lanzaban diferentes versiones de cada navegador con diferentes capacidades de cifrado. "U" se refiere a "USA" (con capacidad de cifrado de 128-bit), "I" se refiere "International" (con capacidad de cifrado de 40-bit, que puede ser usado en cualquier país) y "N" se refiere a None (nula capacidad de cifrado). Originalmente solo se permitía bajar la versión "U" en Estados Unidos de América, pero luego de un tiempo el gobierno se volvió más flexible y permite la exportación de esta tecnología a la mayoría de los países. Actualmente Netscape y Mozilla distribuyen solo la versión "U" de sus navegadores web, con capacidad de cifrado de 256-bit, ya que no sigue siendo necesario desarrollar una versión internacional.