En informática , un agente de usuario es cualquier software, que actúa en nombre de un usuario , que "recupera, representa y facilita la interacción del usuario final con el contenido web". [1] Un agente de usuario es, por tanto, un tipo especial de agente de software .
Algunos ejemplos destacados de agentes de usuario son los navegadores web y los lectores de correo electrónico . A menudo, un agente de usuario actúa como cliente en un sistema cliente-servidor . En algunos contextos, como en el Protocolo de inicio de sesión (SIP), el término agente de usuario se refiere a ambos puntos finales de una sesión de comunicaciones. [2]
Identificación de agente de usuario
Cuando un agente de software opera en un protocolo de red, a menudo se identifica a sí mismo, su tipo de aplicación, sistema operativo , proveedor de software o revisión de software, enviando una cadena de identificación característica a su par operativo. En los protocolos HTTP , [3] SIP, [2] y NNTP [4] , esta identificación se transmite en un campo de encabezado Usuario-Agente . Los bots , como los rastreadores web, a menudo también incluyen una URL y / o una dirección de correo electrónico para que el webmaster pueda comunicarse con el operador del bot.
Usar en HTTP
En HTTP, la cadena Usuario-Agente se usa a menudo para la negociación de contenido , donde el servidor de origen selecciona el contenido adecuado o los parámetros operativos para la respuesta. Por ejemplo, un servidor web puede utilizar la cadena Usuario-Agente para elegir variantes en función de las capacidades conocidas de una versión particular del software del cliente. El concepto de adaptación de contenido está integrado en el estándar HTTP en RFC 1945 "con el fin de adaptar las respuestas para evitar limitaciones particulares de los agentes de usuario".
La cadena Usuario-Agente es uno de los criterios por los cuales los rastreadores web pueden ser excluidos del acceso a ciertas partes de un sitio web utilizando el Estándar de exclusión de robots ( archivo robots.txt ).
Como ocurre con muchos otros encabezados de solicitud HTTP, la información de la cadena "User-Agent" contribuye a la información que el cliente envía al servidor, ya que la cadena puede variar considerablemente de un usuario a otro. [5]
Formato para navegadores web operados por humanos
El formato de cadena de usuario-agente se especifica actualmente en la sección 5.5.3 de HTTP / 1.1 Semántica y contenido . El formato de la cadena User-Agent en HTTP es una lista de tokens de producto (palabras clave) con comentarios opcionales. Por ejemplo, si el producto de un usuario se llamara WikiBrowser, su cadena de agente de usuario podría ser WikiBrowser / 1.0 Gecko / 1.0 . El componente de producto "más importante" se enumera primero.
Las partes de esta cadena son las siguientes:
- nombre y versión del producto ( WikiBrowser / 1.0 )
- motor de diseño y versión ( Gecko / 1.0 )
Durante la primera guerra de navegadores , muchos servidores web se configuraron para enviar páginas web que requerían funciones avanzadas, incluidos marcos , a clientes que se identificaron como alguna versión de Mozilla únicamente. [6] Se consideró que otros navegadores eran productos más antiguos, como Mosaic , Cello o Samba , y se les enviaría un documento HTML básico.
Por este motivo, la mayoría de los navegadores web utilizan un valor de cadena de agente de usuario de la siguiente manera:
Mozilla / [versión] ([información del sistema y del navegador]) [plataforma] ([detalles de la plataforma]) [extensiones] . Por ejemplo, Safari en el iPad ha utilizado lo siguiente:
Mozilla / 5.0 (iPad; U; CPU OS 3_2_1 como Mac OS X; en-us) AppleWebKit / 531.21.10 (KHTML, como Gecko) Mobile / 7B405
Los componentes de esta cadena son los siguientes:
- Mozilla / 5.0 : anteriormente utilizado para indicar compatibilidad con el motor de renderizado de Mozilla.
- (iPad; U; CPU OS 3_2_1 como Mac OS X; en-us) : detalles del sistema en el que se ejecuta el navegador.
- AppleWebKit / 531.21.10 : la plataforma que utiliza el navegador.
- (KHTML, como Gecko) : detalles de la plataforma del navegador.
- Móvil / 7B405 : el navegador lo utiliza para indicar mejoras específicas que están disponibles directamente en el navegador oa través de terceros. Un ejemplo de esto es Microsoft Live Meeting, que registra una extensión para que el servicio Live Meeting sepa si el software ya está instalado, lo que significa que puede proporcionar una experiencia optimizada para unirse a las reuniones.
Antes de migrar a la base de código de Chromium , Opera era el navegador web más utilizado que no tenía la cadena User-Agent con "Mozilla" (en su lugar, comenzaba con "Opera"). Desde el 15 de julio de 2013, [7] la cadena de agente de usuario de Opera comienza con "Mozilla / 5.0" y, para evitar encontrarse con reglas de servidor heredadas, ya no incluye la palabra "Opera" (en su lugar, usa la cadena "OPR" para denotar Opera versión).
Formato para agentes automatizados (bots)
Las herramientas de rastreo web automatizadas pueden utilizar un formulario simplificado, donde un campo importante es la información de contacto en caso de problemas. Por convención, la palabra "bot" se incluye en el nombre del agente. [8] Por ejemplo:
Googlebot / 2.1 (+ http: //www.google.com/bot.html)
Se espera que los agentes automatizados sigan las reglas en un archivo especial llamado " robots.txt ".
Suplantación de agentes de usuario
La popularidad de varios productos de navegador web ha variado a lo largo de la historia de la Web, y esto ha influido en el diseño de los sitios web de tal manera que los sitios web a veces están diseñados para funcionar bien solo con navegadores particulares, en lugar de según los estándares uniformes de la World Wide Web Consorcio (W3C) o el Grupo de trabajo de ingeniería de Internet (IETF). Los sitios web a menudo incluyen código para detectar la versión del navegador para ajustar el diseño de la página enviada de acuerdo con la cadena de agente de usuario recibida. Esto puede significar que a los navegadores menos populares no se les envía contenido complejo (aunque puedan tratarlo correctamente) o, en casos extremos, se rechaza todo el contenido. [9] Por lo tanto, varios navegadores tienen una función para ocultar o falsificar su identificación para forzar cierto contenido del lado del servidor. Por ejemplo, el navegador de Android se identifica a sí mismo como Safari (entre otras cosas) para ayudar a la compatibilidad. [10] [11]
Otros programas de cliente HTTP, como administradores de descargas y navegadores fuera de línea , a menudo tienen la capacidad de cambiar la cadena del agente de usuario.
Los robots de spam y los raspadores web suelen utilizar agentes de usuario falsos.
Un resultado de la suplantación de un agente de usuario puede ser que las estadísticas recopiladas sobre el uso del navegador web sean inexactas.
Agente de usuario olfateando
El rastreo de agentes de usuario es la práctica de los sitios web que muestran contenido diferente o ajustado cuando se ven con determinados agentes de usuario. Un ejemplo de esto es la función Outlook Web Access de Microsoft Exchange Server 2003. Cuando se ve con Internet Explorer 6 o más reciente, se muestra más funcionalidad en comparación con la misma página en cualquier otro navegador. El rastreo de agentes de usuario se considera una mala práctica, ya que fomenta el diseño específico del navegador y penaliza a los nuevos navegadores con identificaciones de agentes de usuario no reconocidas. En su lugar, el W3C recomienda la creación de marcado HTML estándar, [12] permitiendo la representación correcta en tantos navegadores como sea posible, y para probar características específicas del navegador en lugar de versiones o marcas de navegador particulares. [13]
Los sitios web destinados a ser mostrados por teléfonos móviles a menudo se basan en el rastreo de agentes de usuario, ya que los navegadores móviles a menudo difieren mucho entre sí.
Notaciones de fuerza de cifrado
Los navegadores web creados en los Estados Unidos, como Netscape Navigator e Internet Explorer , anteriormente usaban las letras U, I y N para especificar la fuerza de cifrado en la cadena del agente de usuario. Hasta 1996, cuando el gobierno de los Estados Unidos prohibió la exportación del cifrado con claves de más de 40 bits, los proveedores enviaron varias versiones de navegador con diferentes niveles de cifrado. "U" significa "EE. UU." (Para la versión con cifrado de 128 bits), "I" significa "Internacional" (el navegador tiene cifrado de 40 bits y se puede usar en cualquier parte del mundo) y "N" significa ( de facto ) para "Ninguno" (sin cifrado). [14] Tras el levantamiento de las restricciones de exportación , la mayoría de los proveedores admitieron el cifrado de 256 bits.
Desactivación del encabezado User-Agent
En 2020, Google anunció que eliminaría gradualmente el soporte para el encabezado User-Agent en su navegador Google Chrome . Afirmaron que otros importantes proveedores de navegadores web apoyaban la medida, pero que no sabían cuándo otros proveedores seguirían su ejemplo. [15] Google declaró que una nueva función llamada Client Hints reemplazaría la funcionalidad de la cadena User-Agent. [dieciséis]
Ver también
- Estándar de exclusión de robots
- Rastreador web
- Archivo de recursos universal inalámbrico (WURFL)
- Perfil de agente de usuario (UAProf)
- Olfateo del navegador
- Motor de navegador web
Referencias
- ^ "Definición de agente de usuario del W3C" . www.w3.org. 16 de junio de 2011 . Consultado el 20 de octubre de 2018 .
- ^ a b RFC 3261, SIP: Protocolo de inicio de sesión , IETF, The Internet Society (2002)
- ^ RFC 7231, Protocolo de transferencia de hipertexto (HTTP / 1.1): Semántica y contenido , IETF, The Internet Society (junio de 2014)
- ^ Formato del artículo de Netnews . IETF . Noviembre de 2009. sec. 3.2.13. doi : 10.17487 / RFC5536 . RFC 5536 .
- ^ Peter Eckersley. " Las versiones del navegador llevan 10,5 bits de información de identificación en promedio ", Electronic Frontier Foundation , 27 de enero de 2010. Consultado el 25 de agosto de 2011.
- ^ Historial de la cadena de usuario-agente del navegador . WebAIM.
- ^ "Cadenas de agente de usuario de Opera: Opera 15 y más allá" . dev.opera.com. 15 de julio de 2013 . Consultado el 5 de mayo de 2014 .
- ^ "https://www.rankwatch.com/blog/handle-bot-herding-and-spider-wrangling-for-rankings/"
- ^ Burstein quejándose "... me han rechazado hasta que vuelva con Netscape"
- ^ "El navegador de Android se informa como Apple Safari" . Archivado desde el original el 6 de agosto de 2011 . Consultado el 9 de agosto de 2011 .
- ^ "Explicación de la cadena de agente de usuario: navegador Webkit de Android" . UserAgentString.com . Consultado el 29 de julio de 2012 .
Mozilla / 5.0 (Linux; U; Android 2.2; en-sa; HTC_DesireHD_A9191 Build / FRF91) AppleWebKit / 533.1 (KHTML, como Gecko) Versión / 4.0 Mobile Safari / 533.1
- ^ Pemberton, Stephen. "Servicio de validación de marcado W3C" . W3C . Consultado el 18 de octubre de 2011 .
- ^ Clary, Bob (10 de febrero de 2003). "Detección de navegador y compatibilidad con varios navegadores" . Centro de desarrolladores de Mozilla . Mozilla . Consultado el 30 de mayo de 2009 .
- ^ Zawinski, Jamie (28 de marzo de 1998). "cadenas de usuario-agente (obsoletas)" . mozilla.org . Consultado el 8 de enero de 2010 .
- ^ "Chrome Phasing out Support for User Agent" . InfoQ . Consultado el 25 de marzo de 2020 .
- ^ Cimpanu, Catalin. "Google para eliminar las cadenas de usuario-agente en Chrome" . ZDNet . Consultado el 25 de marzo de 2020 .