stringtranslate.com

Encabezado usuario-agente

En informática , el encabezado User-Agent es un encabezado HTTP destinado a identificar el 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 cadena de agente de usuario . El agente de usuario del operador de una computadora utilizada para acceder a la Web tiene codificado dentro de las reglas que gobiernan 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 de 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 del 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 podría 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 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 de agente de usuario es uno de los criterios por los cuales se puede excluir a los rastreadores web 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 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 cadena del agente de usuario se especifica actualmente en la sección 10.1.5 de Semántica HTTP. El formato de la cadena del 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 "más importante" del producto aparece en primer lugar.

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 identificados 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 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 lugar de eso, 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 reglas de servidor heredadas, ya no incluye la palabra "Opera" (en su lugar utiliza la cadena "OPR" para indicar la versión de Opera). ).

Formato para agentes automatizados (bots)

Las herramientas automatizadas de rastreo web 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. Por ejemplo:

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

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

Notaciones de intensidad 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 de cifrado con claves de más de 40 bits, los proveedores enviaban varias versiones de navegadores con diferentes niveles de cifrado. "U" significa "USA" (para la versión con cifrado de 128 bits), "I" significa "Internacional" (el navegador tiene cifrado de 40 bits y se puede utilizar en cualquier parte del mundo) y "N" significa ( de facto ) para "Ninguno" (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 agente de usuario

La popularidad de varios productos de 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 navegadores concretos, en lugar de seguir estándares uniformes de la World Wide Web. Consorcio (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 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 podrían manejarlo correctamente) o, en casos extremos, se rechaza todo el contenido. [8] 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 como Safari (entre otras cosas) para mejorar la compatibilidad. [9] [10]

Otros programas 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.

Un resultado de la suplantación de identidad del 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 ciertos 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 posterior, 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 cambio, el W3C recomienda crear un marcado HTML estándar, [11] que permita una representación correcta en tantos navegadores como sea posible y probar características específicas del navegador en lugar de versiones o marcas de navegador particulares. [12]

Los sitios web destinados a ser mostrados en teléfonos móviles a menudo dependen del rastreo de agentes de usuario, ya que los navegadores móviles a menudo difieren 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 es necesario para determinar las capacidades del navegador y, en su lugar, se utiliza principalmente para la toma de huellas digitales del navegador . Afirmaron que otros proveedores importantes de navegadores web apoyaron la medida. [13] Google declaró que una nueva característica 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 permanece igual excepto por la parte de la versión principal. [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 identificó por el string ) [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 los navegadores que se identifican como 110 a 119 se vieron 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

Ver 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 del navegador contienen en promedio 10,5 bits de información de identificación". Fundación Frontera Electrónica . 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 más allá". 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 rechazaron hasta que volví con Netscape"
  9. ^ "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 .
  10. ^ "Explicación de la cadena del 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) Versión/4.0 Mobile Safari/533.1
  11. ^ Pemberton, Stephen. "Servicio de validación de marcado W3C". W3C . Consultado el 18 de octubre de 2011 .
  12. ^ Clary, Bob (10 de febrero de 2003). "Detección de navegadores y compatibilidad con varios 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 eliminará gradualmente la compatibilidad con agentes de usuario". InfoQ . Consultado el 25 de marzo de 2020 .
  14. ^ Cimpanu, Catalín. "Google eliminará gradualmente las cadenas de agente de usuario en Chrome". ZDNet . Consultado el 25 de marzo de 2020 .
  15. ^ "Reducción de agente usuario". www.cromo.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 en 'rv:109.0' para evitar una detección errónea de IE11". bugzilla.mozilla.org . Consultado el 8 de abril de 2023 .
  19. ^ Peterson, Chris. "Elimine la solución alternativa congelada 'rv:109.0' IE11 UA después de que Firefox alcance la versión 120 (escritorio y Android)". bugzilla.mozilla.org . Consultado el 8 de abril de 2023 .