User-Agent (UA per abreujar) és un camp de la capçalera de sol·licitud HTTP. Cada vegada que un navegador (o un rastrejador, o un altre client HTTP) envia una sol·licitud, inclou aquesta cadena per dir-li al servidor qui sóc, que conté el nom i la versió del navegador, el sistema operatiu i la versió, el motor de renderització, el tipus de dispositiu, l'arquitectura de CPU i més. Els servidors poden utilitzar la UA per retornar contingut adaptat per a diferents dispositius, i els desenvolupadors utilitzen freqüentment les UA per a la gestió de compatibilitat, l'anàlisi del trànsit i la detecció de bots/crawlers.
Les cadenes UA semblen prolixes i caòtiques per raons històriques: en l'època de les guerres de navegadors, els nous navegadors es declaraven com a navegadors més antics a la seva UA per fer que els llocs web construïts per a l'antic sniffing de navegadors funcionessin correctament (per exemple, Chrome inclou identificadors de Safari, i Safari inclou identificadors de Gecko). Capa sobre capa de tokens heretats es va anar acumulant, fent que les cadenes UA modernes siguin difícils de llegir directament. El propòsit d'un analitzador de UA és descompondre aquestes cadenes complexes i extreure informació realment útil.
Tots els navegadors principals tenen formats fixos i tokens identificatius: Chrome conté Chrome/versió, Firefox conté Firefox/versió, Safari conté Version/versió i marcadors Safari/, el nou Edge utilitza Edg/, i el navegador integrat de WeChat utilitza MicroMessenger/. Els sistemes operatius també tenen marcadors corresponents: Windows utilitza Windows NT + versió, macOS utilitza Mac OS X + versió, iOS utilitza CPU iPhone OS + versió, i Android utilitza directament Android + versió. La identificació precisa s'aconsegueix mitjançant la coincidència de patrons d'expressions regulars amb aquestes paraules clau.
El motor de renderització és el component central que un navegador utilitza per analitzar HTML/CSS i renderitzar pàgines: els navegadors basats en Chromium (Chrome, Edge, Opera, etc.) utilitzen el motor Blink, Safari utilitza WebKit, Firefox utilitza Gecko, i l'IE heretat utilitza Trident. Conèixer el motor de renderització ajuda a diagnosticar problemes de compatibilitat CSS/JS, ja que Chrome i Edge presenten un comportament de renderització altament consistent quan comparteixen el motor Blink.
La detecció de bots/crawlers és una de les aplicacions clau de l'anàlisi de UA. Els rastrejadors de motors de cerca (Googlebot, Bingbot, Baiduspider), els rastrejadors d'eines SEO, els scrapers maliciosos, les eines de línia d'ordres (curl, wget) i les biblioteques de scripting (Python requests) — tots inclouen els seus propis identificadors a la UA, o utilitzen cadenes UA molt simples. El trànsit no humà es pot identificar ràpidament mitjançant la coincidència de paraules clau com ara bot, crawler, spider i curl.
La identificació del tipus de dispositiu es basa principalment en indicadors mòbils: les UA que contenen Mobile, iPhone o Android són telèfons mòbils; les que contenen iPad, Tablet o Kindle són tauletes; tota la resta són equips d'escriptori. Tanmateix, és important assenyalar que les UA poden ser falsificades (falsificació de User-Agent). Els rastrejadors maliciosos poden suplantar navegadors normals, de manera que l'anti-rastreig estricte requereix combinar altres senyals, ja que l'anàlisi de UA només serveix com a indicador inicial.
La informació sobre l'arquitectura de CPU s'ha tornat cada cop més important avui dia: els Mac de la sèrie Apple M utilitzen l'arquitectura ARM64, els Intel Mac tradicionals utilitzen x64; els PC amb Windows vénen tant en x64 com en ARM64 (per exemple, plataformes de còmput Snapdragon); els dispositius mòbils són uniformement ARM64. Quan proporcioneu descàrregues de programari, si podeu determinar l'arquitectura de l'usuari a partir de la UA i oferir directament l'instal·lador corresponent (per exemple, distingint Intel/Apple Silicon .dmg o x64/ARM64 .exe), milloreu significativament l'experiència de l'usuari.
És important assenyalar les limitacions de l'anàlisi de UA: les UA poden ser modificades o falsificades per usuaris o extensions; les noves versions de navegadors poden canviar els formats de UA fent que els patrons d'expressions regulars fallin; Windows 11 no es pot distingir de Windows 10 mitjançant UA perquè conserva el número de versió NT 10.0; a iOS, tots els navegadors de tercers (Chrome, Firefox per a iOS) estan obligats a utilitzar el motor WebKit, de manera que les seves UA porten identificadors de Safari. L'anàlisi d'aquesta eina és adequada per a la majoria d'escenaris, incloent la depuració en desenvolupament i l'anàlisi de registres, però per a contextos d'alta seguretat utilitzeu un judici multifactorial combinant IP, empremtes TLS i altres senyals.