Agente de usuario

Un User Agent (en inglés, usuario "usuario" agente "mediador, representante, agente") es una aplicación del lado del cliente para utilizar un servicio de red . El agente de usuario forma la interfaz para el usuario , muestra el contenido del servicio y recibe comandos del usuario. Ejemplos de agentes de usuario son navegadores web , programas de correo electrónico , lectores de noticias o clientes de IRC . Muchos agentes de usuario transmiten sus nombres y otros datos en el encabezado de una solicitud a un servidor como una cadena de caracteres ( cadena de agente de usuario ). El nombre del encabezado correspondiente en el Protocolo de transferencia de hipertexto (HTTP) es User-Agent .

navegador web

Los navegadores web utilizan HTTP para acceder a sitios web, estandarizados en el estándar RFC 2616 . El estándar proporciona un encabezado llamado " User-Agent " para transmitir el nombre y la versión del software del navegador al servidor web . El encabezado es opcional, pero recomendado, y lo utilizan la mayoría de los navegadores web y otro software cliente ( por ejemplo, rastreadores web ). Se transmite con cada solicitud de página.

El estándar especifica el uso previsto del encabezado:

  • Encuestas estadísticas
  • Solución de problemas
  • Entrega de contenido hecho a medida para software de cliente específico.

Estructura de la cadena de agente de usuario HTTP

La cadena de agente de usuario en HTTP contiene el nombre, la versión y el comentario sobre uno o más componentes del cliente. Cada uno tiene la siguiente estructura:

Name/Version (Kommentar)

El comentario es opcional, su contenido ya no está estandarizado. Muchos programas de navegador incluyen información más o menos legible por humanos sobre el sistema operativo e incluso la plataforma de hardware en la que se ejecutan. Otros lo renuncian por completo.

Por ejemplo, el siguiente encabezado es del navegador en modo texto Lynx :

Lynx/2.8.4rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.6c

Aquí se proporcionan los nombres y versiones del navegador y varias bibliotecas. Faltan comentarios.

Por el contrario, esta cadena de agente de usuario proviene de Opera 9.63:

Opera/9.63 (Macintosh; Intel Mac OS X; U; en) Presto/2.1.1

Aquí puede leer en el comentario que el navegador en un Intel - Mac con procesador x86 en ejecución, así como alguna información adicional. La letra "U" significa que los algoritmos criptográficos disponibles en el navegador no están restringidos por las prohibiciones de exportación estadounidenses , la parte "en" indica que el navegador está en la versión en inglés. Además, se proporciona el número de versión del motor de renderizado de Presto.

Estándar de Mozilla

Cuando se introdujo Netscape Navigator en 1994, tenía el nombre "Mozilla" en la "cadena de agente de usuario", que era el nombre de código interno del proyecto. Por ejemplo, el encabezado se ve así:

Mozilla/1.0N (Windows)

Esto fue antes de la estandarización de HTTP y, por lo tanto, del formato de encabezado, por lo que los navegadores en ese momento a menudo se desvían del formato que es válido en la actualidad. Por ejemplo, Netscape Navigator 4.x entrega el idioma de la aplicación después del número de versión entre corchetes, por ejemplo:

Mozilla/4.06 [es] (Win98; I)

En los primeros años posteriores a la introducción del Navigator, Netscape agregó muchas tecnologías nuevas a sus capacidades de diseño de sitios web en rápida sucesión. En particular, la versión 2.0 de la primavera de 1996 trajo JavaScript (bajo el nombre de LiveScript), complementos , imágenes GIF animadas y varias marcas de texto nuevas. Cualquiera que quisiera utilizar estas opciones para diseñar sus sitios web inicialmente dependía prácticamente de que sus visitantes usaran Netscape Navigator. Por esta razón, muchos sitios instalaron un llamado conmutador de navegador que lee el "encabezado del agente de usuario" y proporciona a los usuarios de otros navegadores páginas de diseño alternativo o al menos un mensaje de error significativo.

Con el tiempo, como otros navegadores también admitían funciones más nuevas introducidas por Netscape, los conmutadores del navegador a menudo no se actualizaban; los usuarios de estos productos no habrían recibido este contenido aunque pudieran interpretarlo. Por esta razón, se hizo común que se hicieran pasar por la versión de Mozilla en el "encabezado del agente de usuario" y solo mencionaran el nombre real y la versión del software en el campo de comentarios. Por ejemplo, el "encabezado del agente de usuario" de Microsoft Internet Explorer 2.0 (publicado en noviembre de 1995) es:

Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)

Esta convención se cumple en gran medida en la actualidad y la mayoría de los navegadores aún se identifican con Mozilla . Por ejemplo, es el "encabezado" de Safari en iOS 5.0 en el iPhone 4S de Apple , publicado en octubre de 2011, como sigue.

Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3

La importancia del "encabezado del agente de usuario" en la prueba ha disminuido porque ahora hay una gran cantidad de versiones de navegador y hay mejores opciones disponibles para pruebas específicas de habilidades individuales con la ayuda de JavaScript.

La mayoría de los navegadores también permiten al usuario cambiar el "encabezado del agente de usuario", generalmente en las herramientas de desarrollo proporcionadas pero más o menos ocultas .

Teléfono móvil

A diferencia de los navegadores web de PC, los navegadores de los teléfonos móviles transmiten información adicional en el agente de usuario , como la versión de firmware del dispositivo, el tipo y la versión del navegador o la compatibilidad con Java (J2ME). Posteriormente, se decidió subcontratar información adicional a la UAProf ( User Agent Profile ).

Ejemplos:

  • BlackBerry8520/5.0.0.681 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/114
  • Mozilla/5.0 (Linux; U; Android 2.2; de-de; HTC Magic Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
  • SonyEricssonT68/R201A
  • Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 920) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537

los motores de búsqueda

Un rastreador web , es decir, la unidad de un motor de búsqueda que busca en la red , básicamente parece un navegador normal a un servidor web, pero generalmente envía una cadena de agente de usuario distintiva para informar al operador. A veces, los operadores de servidores web utilizan este agente de usuario distintivo para enviar información especialmente preparada a los motores de búsqueda. Este envío de información especialmente preparado para motores de búsqueda se denomina encubrimiento .

Noticias de correo electrónico y Usenet

Cuando se utiliza el correo electrónico , el agente de usuario es el software que descarga mensajes de un servidor de correo y se los muestra al usuario, además de que le permite redactar nuevos mensajes y, a su vez, los transmite a un servidor de correo. Puede ser un programa de aplicación que se ejecuta localmente en la computadora del usuario o un servicio de correo web como GMX o Gmail . El término Mail User Agent y, sobre todo, la abreviatura MUA son bastante habituales en las discusiones técnicas, especialmente para los programas de aplicaciones locales. Lo mismo se aplica al intercambio de mensajes en Usenet , donde el agente de usuario suele denominarse lector de noticias .

Al enviar correos electrónicos o mensajes en Usenet, el agente de usuario construye un paquete de mensajes que se envía a los destinatarios. El formato de estos mensajes está actualmente (a partir de 2013) estandarizado en RFC 5322 . Además del texto real, los mensajes también contienen información técnica en líneas de encabezado; el estándar no prevé un encabezado para señalar el agente de usuario que envió el mensaje.

Sin embargo, está permitido que los agentes de usuario incluyan sus propios encabezados en el mensaje, que no están especificados por el estándar. Muchos programas usan esto para completar su nombre y versión. Como resultado, el destinatario del mensaje puede ver qué software utilizó el remitente para enviar el correo electrónico. En ausencia de estandarización, varios nombres de encabezados son comunes para esto. El RFC 2076 puramente informativo (no normativo) publicado en 1999 , que ofrece una descripción general de los encabezados comunes en ese momento, da los siguientes nombres para especificar el software cliente y su versión:

  • versión
  • Remitente
  • Cliente de origen
  • Anuncio publicitario X
  • X lector de noticias

En la práctica, “X-Mailer”, “X-Newsreader” y “User-Agent” son los más comunes, este último quizás basado en el estándar HTTP. El prefijo "X-" está destinado a identificar encabezados "experimentales", pero el significado de esto es inconsistente en la práctica. Por supuesto, el contenido del encabezado no está estandarizado y no se puede ver una estructura uniforme. Incluso si se utiliza el nombre de encabezado "User-Agent", los programas no se adhieren a la estructura proporcionada en HTTP.

El contenido de estos encabezados se puede utilizar para encuestas estadísticas y para la resolución de problemas, aunque es probable que el uso inconsistente reduzca el valor estadístico. El uso funcional sería teóricamente posible (por ejemplo, los errores de formato conocidos en el software podrían corregirse automáticamente si este software se identifica por su encabezado), pero no se conoce en la práctica.

Ejemplos de programas de correo electrónico:

User-Agent: Microsoft Outlook IMO, Build 9.0.6604 (9.0.2911.0)
User-Agent: Mutt/1.5.13 (2006-08-11)
X-Mailer: Sylpheed version 0.9.6claws (GTK+ 1.2.10; i386-pc-linux-gnu)

Ejemplos de lectores de noticias:

User-Agent: 40tude_Dialog/2.0.8.1de
User-Agent: tin/1.7.2-20031104 ("Eriskay") (UNIX) (Linux/2.4.18-1-686 (i686))
X-Newsreader: Forte Agent 1.8/32.553

Se puede ver que contiene parcialmente información sobre el sistema operativo y la plataforma de hardware.

enlaces web

Evidencia individual

  1. get_browser : obtenga las capacidades del navegador de un usuario ; Manual de PHP; Descripción de la función get_browser del lenguaje de programación PHP para determinar las capacidades del navegador solicitante para configurar un conmutador de navegador del lado del servidor
  2. User Agent Strings - Google Chrome. Consultado el 14 de enero de 2019 .
  3. Referencia de la cadena del agente de usuario de Firefox. Consultado el 14 de enero de 2019 (inglés americano).
  4. heise online: Contra las huellas digitales: Apple congela el agente de usuario de Safari. Consultado el 14 de enero de 2019 .