Também disponível em: English · Español · Français · العربية
Analisador de user agent
Cada campo rotulado conforme o quanto reflete da máquina real: real, congelado, um mínimo, ambíguo, ou um token que nomeia um navegador que não é este.
O que é um analisador de user agent?
Cada pedido que o seu navegador faz leva um cabeçalho User-Agent: uma linha de texto que nomeia o navegador, a sua versão e a máquina onde corre. Um analisador de user agent desmonta-a e diz-lhe o que lá está. Painéis de estatísticas, registos do servidor e páginas de download usam todos um.
O problema é que essa linha deixou de ser verdadeira. Os navegadores passaram os últimos anos a substituir as partes concretas por constantes — o mesmo valor enviado de qualquer máquina — porque uma cadeia detalhada é uma excelente maneira de reconhecer uma pessoa de site em site. O que sobra continua a parecer uma descrição do seu computador e em grande parte não é.
Por isso este analisador faz o trabalho do costume e depois faz a única coisa que os outros não fazem: rotula cada campo conforme o quanto reflete da máquina real. Real quer dizer que veio do seu computador. Congelado quer dizer que o navegador manda esse valor exacto a toda a gente. Um mínimo quer dizer que a verdade é esse número ou maior. Ambíguo quer dizer que o valor é genuíno e mesmo assim não identifica aquilo que nomeia.
Como usar
- Cole uma cadeia User-Agent, ou use a sua. O botão preenche o que o seu navegador está a mandar neste momento. Cadeias de um registo do servidor, de uma exportação de estatísticas ou de um relatório de erro funcionam da mesma maneira.
- Leia o rótulo ao lado de cada campo, não só o valor. Cada linha traz uma frase a dizer porque é de fiar ou porque não é, de modo que vê num relance que partes de uma linha de registo vale a pena usar.
- Veja a lista de tokens em baixo. Mostra todos os navegadores e motores que a cadeia diz ser, e marca aquele que é mesmo verdade. Numa cadeia moderna do Chrome é um em cinco.
Dois navegadores congelam o mesmo por razões opostas
O Chrome reduziu o seu User-Agent de propósito, e a forma em que assentou não é um palpite: o motor constrói a cadeia a partir de uma lista fixa de valores de plataforma. São oito, cinco de computador, portanto para qualquer versão do Chrome existem exactamente cinco cadeias dessas no mundo. Os números de compilação e de correção são enviados como 0.0.0 desde o Chrome 101. A versão do Android é a constante 10 e o modelo do aparelho é a letra K, sozinha.
O Firefox congela a mesma linha do Windows — e o comentário do seu código dá uma razão completamente diferente. Fixa NT 10.0 para que a Microsoft não possa mudar um valor sensível à compatibilidade sem o Firefox concordar primeiro. Isso é um veto de compatibilidade, não uma medida de privacidade, e cai exactamente no valor a que o Chrome chegou pelo outro lado.
No Android os dois discordam mesmo, e esta é a parte que nenhum analisador mostra. O Chrome manda Android 10 de qualquer aparelho. O Firefox usa 10 como piso: abaixo de 10 declara 10, e de 10 para cima declara o número real, porque alguns sites empresariais recusam clientes com versões antigas. Assim, um Android 13 numa linha de registo é verdadeiro se foi o Firefox a mandá-lo e impossível se foi o Chrome, e Android 10 quer dizer no máximo 10 num navegador e não quer dizer nada no outro. O mesmo token, dois sentidos, e qual deles se aplica não se sabe olhando para o token.
O campo em que mais se acredita é o menos informativo de todos. Um Chromebook declara a compilação 14541.0.0, demasiado específica para parecer um marcador e idêntica em todos os Chromebooks do planeta.
Limites honestos
Esta ferramenta não consegue recuperar o que a cadeia não contém. Se colar um User-Agent moderno do Chrome, nenhum analisador do mundo — este incluído — lhe consegue dizer a versão do Windows, a do macOS, a do Android ou o aparelho. Não estão escondidas atrás de um pagamento nem de uma expressão regular mais esperta. Pura e simplesmente não estão na cadeia.
O caso do Windows é o que vale a pena reter, porque é onde todos os analisadores cometem o mesmo erro com toda a confiança. O Windows 11 continua a identificar-se como NT 10.0, portanto um analisador que imprime Windows 10 está a nomear um sistema operativo que não consegue distinguir do outro. Medido contra um analisador muito usado, todas as versões de sistema que ele declara a partir de uma cadeia congelada do Chromium são constantes: diz Windows 10, Mac OS 10.15.7 e Android 10, e declara um modelo de aparelho K. Não está errado de nenhuma maneira que pudesse evitar — declara o que a cadeia diz.
Um User-Agent é também declarado pelo próprio cliente, e sempre foi. Qualquer um pode mandar o que quiser: há extensões para o mudar, e o resultado de analisar uma cadeia inventada é uma leitura fiel de uma mentira. Trate o que sai de qualquer analisador como aquilo que o cliente disse, não como aquilo que o cliente é.
O substituto previsto, uma API que declara a mesma informação em pedaços estruturados, existe nos navegadores baseados em Chromium e em mais lado nenhum. O Firefox e o Safari recusaram-se ambos a implementá-la, e as posições públicas dos dois motores deixam escrito porquê. Portanto, para uma boa parte dos visitantes, a cadeia congelada não é um recurso herdado — é a única coisa que existe.
Porque é grátis
Porque não custa nada manter. A análise acontece no seu navegador; nada é enviado, nenhum servidor vê a cadeia e não há conta nenhuma pelo meio.
As regras saem do código dos dois motores que escrevem estas cadeias, não da documentação sobre eles, e os testes que as verificam estão guardados ao lado da ferramenta.