stringtranslate.com

Encabezado de agente de usuario

En informática , el encabezado User-Agent es un encabezado HTTP destinado a identificar al agente de usuario responsable de realizar una solicitud HTTP determinada. Mientras que la secuencia de caracteres User-Agentcomprende el nombre del encabezado en sí, el valor del encabezado que un agente de usuario determinado utiliza para identificarse se conoce coloquialmente como su cadena de agente de usuario . El agente de usuario del operador de un ordenador utilizado para acceder a la Web ha codificado dentro de las reglas que rigen su comportamiento el conocimiento de cómo negociar su mitad de una transacción de solicitud-respuesta; por tanto, el agente de usuario desempeña el papel del cliente en un sistema cliente-servidor . A menudo se considera útil en las redes la capacidad de identificar y distinguir el software que facilita una sesión de red. Por este motivo, el encabezado HTTP User-Agent existe para identificar el software cliente ante el servidor que responde.

Uso en solicitudes de clientes

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 , modelo de dispositivo, proveedor de software o revisión de software, enviando una cadena de identificación característica a su par operativo. En los protocolos HTTP, [1] SIP, [2] y NNTP [3] , esta identificación se transmite en un campo de encabezado User-Agent . 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 ponerse en contacto con el operador del bot.

En HTTP, la "cadena de agente de usuario" se utiliza 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 de agente de usuario para elegir variantes en función de las capacidades conocidas de una versión particular del software cliente. El concepto de personalización de contenido está integrado en el estándar HTTP en RFC 1945 "con el fin de personalizar las respuestas para evitar limitaciones particulares del agente de usuario".

La cadena del agente de usuario 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 ).

Al igual que con muchos otros encabezados de solicitud HTTP, la información en la cadena del agente de usuario contribuye a la información que el cliente envía al servidor, ya que la cadena puede variar considerablemente de un usuario a otro. [4]

Formato para navegadores web operados por humanos

El formato de la cadena de agente de usuario se especifica actualmente en la sección 10.1.5 de HTTP Semantics. El formato de la cadena de agente de usuario 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" aparece primero.

Las partes de esta cadena son las siguientes:

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. [5] Otros navegadores se consideraban productos más antiguos, como Mosaic , Cello o Samba , y se les enviaba 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:

Antes de migrar al código base de Chromium , Opera era el navegador web más utilizado que no tenía la cadena de agente de usuario con "Mozilla" (en su lugar comenzaba con "Opera"). Desde el 15 de julio de 2013, [6] la cadena de agente de usuario de Opera comienza con "Mozilla/5.0" y, para evitar encontrarse con las reglas de servidor heredadas, ya no incluye la palabra "Opera" (en su lugar, se usa la cadena "OPR" para indicar la versión de Opera).

Formato para agentes automatizados (bots)

Las herramientas de rastreo web automatizado pueden utilizar un formulario simplificado, en el que 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. Por ejemplo:

Googlebot/2.1 (+http://www.google.com/bot.html)

Se espera que los agentes automatizados sigan las reglas de un archivo especial llamado " robots.txt ".

Notaciones de fuerza de cifrado

Los navegadores web creados en los Estados Unidos, como Netscape Navigator e Internet Explorer , utilizaban anteriormente las letras U, I y N para especificar la intensidad del cifrado en la cadena del agente de usuario. Hasta 1996, cuando el gobierno de los Estados Unidos permitió la exportación del cifrado con claves de más de 40 bits, los proveedores enviaron varias versiones del navegador con diferentes intensidades de cifrado. "U" significa "USA" (para la versión con cifrado de 128 bits), "I" significa "International" (el navegador tiene un cifrado de 40 bits y se puede utilizar en cualquier parte del mundo) y "N" significa ( de facto ) "None" (sin cifrado). [7] Tras el levantamiento de las restricciones a la exportación , la mayoría de los proveedores admitieron el cifrado de 256 bits.

Suplantación de identidad del agente de usuario

La popularidad de los distintos navegadores 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 a veces los sitios web están diseñados para funcionar bien sólo con determinados navegadores, en lugar de hacerlo de acuerdo con estándares uniformes del Consorcio World Wide Web (W3C) o el Grupo de Trabajo de Ingeniería de Internet (IETF). Los sitios web suelen incluir código para detectar la versión del navegador y ajustar el diseño de la página enviada según la cadena de agente de usuario recibida. Esto puede significar que a los navegadores menos populares no se les envíe contenido complejo (aunque puedan manejarlo correctamente) o, en casos extremos, que se rechace todo el contenido. [8] Por lo tanto, varios navegadores tienen una función para ocultar o falsificar su identificación para forzar la aceptación de cierto contenido del lado del servidor. Por ejemplo, el navegador de Android se identifica a sí mismo como Safari (entre otras cosas) para facilitar la compatibilidad. [9] [10]

Otros programas cliente HTTP, como administradores de descargas y navegadores sin conexión , a menudo tienen la capacidad de cambiar la cadena del agente de usuario.

Un resultado de la suplantación del agente de usuario puede ser que las estadísticas recopiladas sobre el uso del navegador web sean inexactas.

Detectando agentes de usuario

El rastreo de agentes de usuario es la práctica de los sitios web de mostrar contenido diferente o ajustado cuando se visualizan con determinados agentes de usuario. Un ejemplo de esto es la función Outlook Web Access de Microsoft Exchange Server 2003. Cuando se visualiza con Internet Explorer 6 o una versión 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 crear un marcado HTML estándar [11] , que permita una representación correcta en tantos navegadores como sea posible, y probar funciones específicas del navegador en lugar de versiones o marcas de navegadores particulares. [12]

Los sitios web diseñados para ser visualizados en teléfonos móviles a menudo dependen del rastreo del agente de usuario, ya que los navegadores móviles suelen diferir mucho entre sí.

Desuso del encabezado User-Agent

En 2020, Google anunció que congelaría partes del encabezado User-Agent en su navegador Chrome , ya que ya no se usaba para determinar las capacidades del navegador y, en cambio, se usaba principalmente para la toma de huellas digitales pasiva del navegador . [13] Google declaró que una nueva función llamada Client Hints reemplazaría la funcionalidad de la cadena de agente de usuario. [14]

A partir de Chrome 113, lanzado en abril de 2023, el encabezado User-Agent quedó parcialmente congelado. En las versiones más nuevas de Chrome, el user-agent permanecería estático, excepto por los dígitos que representaban la versión principal del navegador que se estaba utilizando. [15]

Identificación errónea del navegador

A partir de Firefox 110, lanzado en febrero de 2023, [16] Mozilla anunció que congelaría temporalmente partes de la cadena de agente de usuario del navegador en la versión 109. Esto se hizo debido a que varios sitios web reconocieron incorrectamente una versión de desarrollo del navegador (que se identificaba a sí misma por la cadena ) [17] como el obsoleto Internet Explorer 11 (que informa ). [18] El problema se corregirá automáticamente después del lanzamiento de Firefox 120, ya que solo se observó que los navegadores que se identificaban como 110 a 119 se veían afectados por él. [19]Mozilla/5.0 (Windows NT 10.0; Win64; rv:110.0) Gecko/20100101 Firefox/110.0 Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko

Véase también

Referencias

  1. ^ "RFC-9110: Semántica HTTP". IETF . Consultado el 28 de julio de 2022 .
  2. ^ RFC 3261, SIP: Protocolo de inicio de sesión , IETF, The Internet Society (2002)
  3. ^ Formato del artículo de Netnews. IETF . Noviembre de 2009. sec. 3.2.13. doi : 10.17487/RFC5536 . RFC 5536.
  4. ^ Eckersley, Peter (27 de enero de 2010). «Las versiones de los navegadores contienen 10,5 bits de información de identificación en promedio». Electronic Frontier Foundation . Consultado el 25 de agosto de 2011 .
  5. ^ Historial de la cadena de agente de usuario del navegador. WebAIM.
  6. ^ "Cadenas de agente de usuario de Opera: Opera 15 y posteriores". dev.opera.com. 15 de julio de 2013. Consultado el 5 de mayo de 2014 .
  7. ^ Zawinski, Jamie (28 de marzo de 1998). «Cadenas de agente de usuario (obsoletas)». mozilla.org . Consultado el 8 de enero de 2010 .
  8. ^ Burstein se queja "... Me han rechazado hasta que vuelva con Netscape"
  9. ^ "Navegador Android se presenta como Safari de Apple". Archivado desde el original el 6 de agosto de 2011 . Consultado el 9 de agosto de 2011 .
  10. ^ "Explicación de la cadena de agente de usuario: navegador Webkit de Android". UserAgentString.com. Archivado desde el original el 4 de mayo de 2012. 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) Version/4.0 Mobile Safari/533.1
  11. ^ Pemberton, Stephen. "Servicio de validación de marcado del W3C". W3C . Consultado el 18 de octubre de 2011 .
  12. ^ Clary, Bob (10 de febrero de 2003). "Detección de navegadores y compatibilidad entre navegadores". Centro de desarrolladores de Mozilla . Mozilla . Archivado desde el original el 17 de noviembre de 2011 . Consultado el 30 de mayo de 2009 .
  13. ^ "Chrome deja de ofrecer compatibilidad con el agente de usuario". InfoQ . Consultado el 25 de marzo de 2020 .
  14. ^ Cimpanu, Catalin. "Google eliminará gradualmente las cadenas de agente de usuario en Chrome". ZDNet . Consultado el 25 de marzo de 2020 .
  15. ^ "Reducción de agente de usuario". www.chromium.org . Consultado el 13 de julio de 2023 .
  16. ^ "Notas de la versión de Firefox". mozilla.org . Consultado el 8 de abril de 2023 .
  17. ^ "www.bestbuy.com - Firefox es un navegador no compatible". github.com . Consultado el 8 de abril de 2023 .
  18. ^ Schubert, Dennis. "Congele el segmento 'rv:' en la cadena del agente de usuario a 'rv:109.0' para evitar la detección errónea de IE11". bugzilla.mozilla.org . Consultado el 8 de abril de 2023 .
  19. ^ Peterson, Chris. "Elimine la solución alternativa de UA de IE11 'rv:109.0' congelada después de que Firefox alcance la versión 120 (escritorio y Android)". bugzilla.mozilla.org . Consultado el 8 de abril de 2023 .