La primera vez que tuve que darle sentido a una cadena User-Agent de forma masiva fue durante un proyecto de SEO wpadminify.com, mirando un registro de acceso al servidor tratando de averiguar cuánto tráfico eran personas reales y cuánto rastreaban. Tenía una columna de cadenas con la que todo empezó Mozilla/5.0, todos mencionaron Safari, y la mitad de ellos mentían acerca de ser un navegador y al mismo tiempo otro. Leerlos a simple vista era inútil. Ese es el trabajo que hace un analizador de agentes de usuario, y después de hacerlo de la manera más difícil muchas veces, incorporé uno Toolz.dev. Esta es la guía y el encabezado sorprendentemente desordenado detrás de él.
TL;Dr: La herramientaz analizador de agentes de usuario toma una cadena User-Agent y la divide en navegador, motor de renderizado, sistema operativo, tipo de dispositivo y arquitectura de CPU. Aplica el orden de detección, el encabezado 's peculiaridades de la demanda, por lo que Edge no se lee mal ya que Chrome y Mobile Safari se leen desde su token de versión real. También marca bots conocidos. Todo se ejecuta en el lado del cliente: sin carga, sin registro, seguro para líneas de registro reales.
¿qué es una cadena User-Agent?
Una cadena User-Agent es el valor de User-Agent encabezado de solicitud que envía un navegador o cliente HTTP con casi todas las solicitudes. El encabezado está definido en RFC 9110, la especificación HTTP Semantics, que la describe como una secuencia de identificadores y comentarios de productos que permiten a un servidor identificar el software que realiza la solicitud. En la práctica nombra el navegador, su versión, el motor de renderizado, el sistema operativo y, a menudo, el dispositivo.
La intención era razonable: dar a los servidores una manera de saber qué se está conectando para que puedan adaptar respuestas o recopilar estadísticas. La realidad es que la cadena se ha convertido en una de las piezas de datos autoinformados menos confiables en la web, no porque sea maliciosa sino porque dos décadas de hacks de compatibilidad han superpuesto token sobre token hasta que la lectura obvia suele ser la incorrecta.
Aquí hay una cadena Chrome moderna en Windows:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36
Afirma ser Mozilla, menciona AppleWebKit y termina con la palabra Safari. No es ninguna de esas cosas; es Chrome. Cada token antes Chrome/126 es sedimento histórico. Un analizador existe precisamente porque no se puede confiar en los tokens que parecen más autorizados.
¿por qué analizar un agente de usuario es tan propenso a errores?
El encabezado creció por imitación. En las primeras guerras de navegadores, los servidores verificaban al agente de usuario para decidir qué versión de una página enviar y verificaban torpemente, a menudo con una simple coincidencia de subcadenas. Un nuevo navegador que quería recibir la página buena y moderna tenía que contener el token que buscaba el servidor, por lo que cada navegador copió al ganador anterior. Netscape se hacía llamar Mozilla, por lo que Internet Explorer afirmó ser compatible con Mozilla. Cuando llegaron los navegadores WebKit, llevaban los tokens Mozilla y KHTML. Chrome se bifurcó de WebKit y mantuvo AppleWebKit y Safari para que los servidores de rastreo de WebKit lo trataran bien. El resultado es que una sola cadena puede contener honestamente los nombres de cuatro linajes de navegadores diferentes.
Esto crea trampas de hormigón para cualquiera que lea la cuerda:
- Edge y Opera contienen
Chrome. Microsoft Edge añadeEdg/126.0.0.0y Opera añadeOPR/, pero ambos también llevan el completoChrome/126token porque están basados en Chromium. Pruebe Chrome primero y etiquetará a cada usuario de Edge y Opera como Chrome. - Safari oculta su versión real. En el escritorio y en iOS, Safari informa su versión orientada al usuario en a
Version/17.5ficha, mientras que elSafari/604.1el token cerca del final es el número de compilación de WebKit, no la versión del navegador. LeerSafari/como versión y obtienes un número sin sentido. - Chrome en iOS no es el motor Chrome's. Apple requiere que todos los navegadores iOS utilicen WebKit, por lo que Chrome en un iPhone informa
CriOSy ejecuta WebKit, no Blink. Firefox en iOS lo esFxiOS, de asemenea WebKit. - Windows 11 no existe en la cadena. Microsoft nunca superó el token del kernel NT, por lo que tanto Windows 10 como Windows 11 informan
Windows NT 10.0. La cadena no puede diferenciarlos en absoluto.
Un analizador es un pequeño montón de reglas ordenadas que conocen estas trampas. Eso es realmente todo, pero hacer el orden correcto es todo el juego.
¿cómo funciona el analizador de agentes de usuario de Toolz?
los analizador ejecuta una secuencia de comprobaciones cuyo orden codifica las trampas anteriores. Busca los navegadores que incorporan otro navegador & 39;s token primero. Edge antes de Chrome, Opera antes de Chrome, Samsung Internet y UC Browser antes de Chrome, por lo que los prestados Chrome el token nunca gana por accidente. Lee Safari desde su Version/ token en lugar de su Safari/ crear token. Reconoce las variantes de iOS CriOS y FxiOS como Chrome y Firefox respectivamente, mientras informan correctamente su motor como WebKit.
Para el sistema operativo, asigna el número del kernel de Windows NT al nombre comercial Windows NT 6.1 se convierte en Windows 7 y Windows NT 10.0 se convierte en Windows 10 u 11, declarado honestamente como un par porque la cadena realmente no puede distinguirlos. Restaura la forma punteada de las versiones de iOS y macOS, que el encabezado escribe con guiones bajos como 17_5, y reconoce Android, Chrome OS y Linux.
Para el dispositivo clasifica la solicitud como de escritorio, móvil, tableta o bot. La regla de la tableta es complicada: un iPad es una tableta, un dispositivo Android sin ella Mobile el token es una tableta y cualquier cosa que coincida Mobile, iPhone, o Windows Phone es un teléfono. Cuando la cadena expone un modelo de dispositivo, como una cadena de compilación de Android o el nombre de un producto de Apple, el analizador lo saca a la superficie.
También señala robots. Este es el campo al que accedo más, porque cuando lees un registro de acceso, la pregunta más útil es cuánto tráfico está automatizado. El analizador coincide con un amplio conjunto de firmas que cubren rastreadores de búsqueda, recuperadores de vista previa social y clientes de línea de comandos.
¿qué puede decirle un agente de usuario y qué no?
Vale la pena ser preciso sobre los límites, porque tratar la cuerda como un hecho conduce a malas decisiones.
| Pregunta | ¿Puede la UA responder? | notas |
|---|---|---|
| ¿qué familia de navegadores | Generalmente sí | Con orden de detección correcto |
| Versión exacta del navegador | Generalmente sí | Cada vez más congelado o reducido |
| Nombre del sistema operativo | Generalmente sí | Windows 10 frente a 11 es imposible |
| Tipo de dispositivo | Aproximadamente | Heurístico, no garantizado |
| Modelo de dispositivo exacto | A veces | Sólo cuando la cadena lo incluye |
| Si el cliente es genuino | prohibido | Trivialmente falsificable |
| Tamaño de pantalla o capacidades | prohibido | Utilice la detección de funciones en su lugar |
Las dos últimas filas son lo más importante. Un agente de usuario es autoinformado y puede cambiarse en una línea de código, configurarse mediante cualquier cliente HTTP o congelarse mediante el navegador para mayor privacidad. Un raspador puede anunciarse como Chrome en Windows y no hay nada en la cadena que lo contradiga. Entonces, el resultado analizado le indica lo que dice ser el cliente, lo cual es útil para estadísticas y depuración, pero no es prueba de nada. Cuando necesita saber qué puede hacer realmente un navegador, detecta funciones en JavaScript en lugar de inferir capacidades del nombre. Este es el mismo principio detrás de escribir código front-end resistente que el Kit de herramientas para desarrolladores web el resumen vuelve a repetir.
¿están desapareciendo las cadenas User-Agent?
No exactamente, pero se están reduciendo deliberadamente. Los navegadores Chromium han estado congelando y recortando la cadena heredada durante algunos años, limitando el nivel de detalle que expone, especialmente los números de versión menores y algunos detalles específicos de la plataforma. El reemplazo es Consejos para clientes de User-Agent, un mecanismo en el que el servidor solicita exactamente la información del cliente que necesita Sec-CH-UA solicitar encabezados y el navigator.userAgentData Api de JavaScript, en lugar de recibir una cadena larga, tiene que analizarla. Client Hints es también donde finalmente estará disponible la distinción Windows 10 versus 11 Sec-CH-UA-Platform-Version.
El resultado práctico para los próximos años es que ambos existen. El clásico User-Agent el encabezado aún se envía en cada solicitud de cada navegador y de cada cliente que no es del navegador, y una gran cantidad de herramientas, análisis y lógica del lado del servidor aún lo lee. Por lo tanto, analizar la cadena sigue siendo la forma más portátil de identificar un cliente, incluso cuando los datos más ricos se mueven a Client Hints. Si está construyendo algo nuevo y desea la versión de plataforma con precisión, lea Client Hints; Si está analizando un registro existente o admite la más amplia gama de clientes, analice la cadena.
¿cómo uso el analizador?
El flujo es deliberadamente simple. Pegue una cadena de agente de usuario en el cuadro o haga clic en una de las muestras integradas para ver una cadena representativa de escritorio, móvil o bot. Para tomar el suyo propio, abra la consola de su navegador y escriba navigator.userAgent, luego pegue el resultado. Mientras escribe, el navegador, el motor, el sistema operativo, el tipo de dispositivo, la arquitectura de la CPU y el indicador del bot se actualizan en vivo, sin ningún botón que presionar. Cuando desee el resultado en otro lugar, cópielo como una tabla separada por pestañas que se pegue limpiamente en una hoja de cálculo o en un informe de error.
Debido a que todo se ejecuta en su navegador, puede pegar líneas de registro de acceso sin procesar o cadenas de visitantes reales sin que ninguna de ellas salga de su máquina. Ese modelo del lado del cliente es deliberado y es el mismo detrás de cada herramienta del sitio, explicado en el herramientas en línea de privacidad de datos guía. Para una credencial que está depurando junto con una solicitud, el generador de autenticación básico y el Decodificador JWT siga el mismo enfoque sin carga.
Donde el analizador encaja con las otras herramientas web
El analizador de agentes de usuario se encuentra en un pequeño grupo de herramientas de solicitud y respuesta en el sitio. Cuando inspecciona el tráfico a un dominio, el búsqueda de dominio la herramienta responde quién es el propietario y lo opera. Cuando una solicitud lleva un token portador que necesita inspeccionar, el Decodificador JWT lee los reclamos. Cuando está construyendo una solicitud autenticada en primer lugar, el generador de autenticación básico construye el Authorization encabezado. Y cuando está trabajando en cómo se presenta una página a los rastreadores, que leen sus páginas bajo sus propios agentes de usuario, el generador de metaetiquetas da forma a las etiquetas que consumen.
Para cualquiera que reúna un conjunto personal de estos, el Herramientas de productividad para desarrolladores la guía cubre cómo las utilidades basadas en navegador del sitio encajan en un día laborable. El objetivo de mantenerlos unidos es que depurar una interacción HTTP rara vez implica solo una de estas preguntas.
Un flujo de trabajo práctico: leer un registro de tráfico
Déjame concretar esto con la tarea que me inició en este camino. Has exportado una porción de tu registro de acceso y quieres entenderlo. El enfoque ingenuo es mirar la columna Usuario-Agente, que es exactamente donde muerden las trampas. Un rastreador que se identifica cortésmente como Googlebot es fácil, pero un raspador sin cabeza que se anuncia como una versión normal de Chrome parece idéntico a un visitante real hasta que verifica las otras señales.
El analizador ayuda de dos maneras. Primero, el indicador del bot detecta inmediatamente los rastreadores honestos y los clientes de automatización comunes, para que pueda separar el tráfico obvio de la máquina del tráfico humano en una sola pasada. En segundo lugar, el desglose correcto del navegador y del sistema operativo del tráfico restante le dice algo real sobre su audiencia: si sesga el móvil, qué sistemas operativos dominan, si un navegador antiguo todavía importa lo suficiente como para probarlo. En el trabajo de WP Adminify, ese desglose cambió qué navegadores priorizamos para las pruebas y confirmó que una parte de lo que parecía tráfico orgánico era una vista previa y un seguimiento de los bots en lugar de lectores. Analizar las cadenas convirtió una pared de ruido en una decisión.
La única disciplina a mantener es la de la sección de límites: el resultado analizado es una afirmación, no una prueba. Un raspador determinado forjará una cadena convincente y ningún analizador podrá detectarla únicamente del Usuario-Agente. Combine el análisis con patrones de solicitud, velocidad y otras señales cuando hay mucho en juego. Sin embargo, para las estadísticas y depuración cotidianas, un análisis correcto es exactamente lo que necesita, y hacerlo a mano es el error.
¿Qué me dicen los campos del motor de renderizado y de la CPU?
Dos de los campos analizados reciben menos atención que el navegador y el sistema operativo, pero ambos son útiles. El motor de renderizado es el componente que realmente convierte HTML y CSS en píxeles, y es un mejor predictor de cómo se comporta una página que el nombre del navegador. Chrome, Edge, Opera, Brave, Samsung Internet y la mayoría de los demás comparten el motor Blink, por lo que un error de renderizado que aparece en uno suele aparecer en todos ellos; Firefox usa Gecko; y Safari, junto con todos los navegadores de iOS, utiliza WebKit. Cuando estás clasificando un error de diseño, agrupar tu tráfico por motor en lugar de por nombre de navegador te indica cuántas rutas de renderizado genuinamente distintas tienes que probar, que a menudo son solo tres.
El analizador deriva el motor de los tokens de la plataforma en lugar de la etiqueta del navegador, razón por la cual puede informar Blink para un navegador Chromium y WebKit para Safari aunque ambos descienden del mismo token AppleWebKit. También detecta los motores más antiguos, Trident para Internet Explorer y EdgeHTML para Edge heredado, que todavía aparecen en los registros empresariales.
El campo de arquitectura de la CPU lee los tokens de la plataforma x86_64, Win64, arm64, y sus familiares, informando si el cliente es una máquina ARM de 64 bits, 32 bits o ARM. Es el campo para verificar cuándo realiza descargas específicas de la plataforma y necesita saber qué compilación puede ejecutar un visitante, y es una señal silenciosa de cuán moderno es su audiencia y el hardware #39;s.
Preguntas frecuentes
¿qué es una cadena User-Agent? Una cadena User-Agent es el valor del encabezado HTTP User-Agent que un navegador o cliente envía con cada solicitud. Es una lista de tokens de productos que nombran el navegador, su motor de renderizado, el sistema operativo y, a menudo, el dispositivo, definidos en RFC 9110. Los servidores la leen para identificar el software que se conecta a ellos.
¿cómo encuentro mi propio agente de usuario? Abra su navegador's consola de desarrollador y escriba navigator.userAgent, luego presione Enter. La cadena que imprime es exactamente lo que su navegador envía a los servidores. Péguelo en el analizador del agente de usuario para ver el navegador, el sistema operativo y el dispositivo en el que decodifica.
¿por qué Chrome's User-Agent contiene la palabra Safari? Para compatibilidad con versiones anteriores. Chrome bifurcó su motor de Apple's WebKit, y los primeros servidores verificaron el token Safari antes de publicar páginas modernas, por lo que Chrome lo mantuvo para evitar ser degradado. La misma historia es la razón por la que casi todos los navegadores todavía comienzan su cadena con Mozilla/5.0.
¿puede un agente de usuario informarle a Windows 10 desde Windows 11? No. Ambos informan Windows NT 10.0 porque Microsoft nunca incrementó el token del kernel NT para Windows 11, por lo que la cadena por sí sola no puede distinguirlos. La forma moderna de diferenciarlos son las sugerencias del cliente User-Agent, específicamente el encabezado Sec-CH-UA-Platform-Version.
¿es confiable un agente de usuario para identificar un dispositivo? Es una pista útil, no una prueba. Los agentes de usuario se pueden cambiar en una línea de código, establecer por cualquier cliente HTTP, falsificarlos con raspadores o congelarlos por el navegador para mayor privacidad. Trate el resultado analizado como lo que el cliente dice ser y combínelo con otras señales cuando la precisión importe.
¿cómo detecta el analizador bots y rastreadores? Combina la cadena con una amplia lista de firmas conocidas, incluidos rastreadores de búsqueda como Googlebot y Bingbot, buscadores de vista previa social y clientes de automatización como curl, wget y Chrome sin cabeza. Cualquier coincidencia establece el indicador del bot y clasifica el dispositivo como rastreador.
¿es seguro pegar el registro de producción de los agentes de usuario aquí? Sí. Todo el análisis se realiza en su navegador con JavaScript y la cadena nunca se envía a ningún servidor. Puede pegar líneas de registro de acceso sin procesar o agentes de usuario visitantes reales sin que abandonen su dispositivo.
¿las cadenas User-Agent están en desuso? El encabezado se congela y reduce, no se elimina. Los navegadores Chromium ahora limitan los detalles de la cadena heredada y, en su lugar, exponen datos más ricos a través de sugerencias de cliente de agente de usuario. La cadena clásica todavía se envía en cada solicitud, por lo que analizarla sigue siendo la forma más portátil de leer los detalles del cliente.



