Analisador de User-Agent
Analisa uma cadeia de User-Agent em informação de navegador, motor, sistema operativo e dispositivo.
A carregar Analisador de User-Agent… Se nada acontecer, ativa o JavaScript.
O cabeçalho User-Agent é uma cadeia de texto de formato livre que os navegadores web e os clientes HTTP enviam com cada pedido, identificando o software que estabelece a ligação. Apesar de ser apenas uma linha de texto, um User-Agent bem formado codifica uma quantidade surpreendente de informação: a família e a versão do navegador, o motor de renderização sobre o qual está construído, o sistema operativo e a respetiva versão e, muitas vezes, o tipo ou o modelo do dispositivo. Esta informação foi concebida originalmente para permitir que os servidores web enviassem conteúdo adequado ao navegador numa época em que o Internet Explorer e o Netscape renderizavam as páginas de forma muito diferente. Hoje, as cadeias de User-Agent são usadas para análise de dados, deteção de bots, deteção de funcionalidades e depuração de problemas de compatibilidade em aplicações web.
Perguntas frequentes
Que dados é que esta ferramenta envia para os vossos servidores?
Porque é que as cadeias de User-Agent contêm 'Mozilla/5.0' mesmo para o Chrome e o Safari?
Porque é que o resultado analisado nem sempre corresponde ao que eu espero?
Qual é a diferença entre o motor do navegador e o próprio navegador?
Existem limites de utilização nesta ferramenta?
Como é que isto se compara com usar navigator.userAgent em JavaScript?
O que são os Client Hints e como é que substituem o User-Agent?
Esta ferramenta regista cadeias de User-Agent para análise de dados ou publicidade?
Como é que os bots e os rastreadores se identificam no User-Agent?
Posso confiar na informação de sistema operativo e dispositivo de um User-Agent?
Sobre Analisador de User-Agent
Os programadores web colam cadeias de User-Agent em analisadores quando chega um relatório de erro de um utilizador numa plataforma desconhecida e precisam de perceber exatamente que combinação de navegador e sistema operativo está envolvida. Os engenheiros de QA usam os dados de UA analisados para verificar se os seus conjuntos de testes automatizados se identificam corretamente. As equipas de segurança analisam os User-Agent nos registos do servidor para identificar scrapers web, scanners de vulnerabilidades e bots. Os programadores de API verificam o UA dos pedidos recebidos para perceber que bibliotecas de cliente e versões de SDK os seus utilizadores estão a usar. Os engenheiros de DevOps correlacionam os dados de UA com as taxas de erro para identificar regressões de compatibilidade específicas de um navegador.
Esta ferramenta analisa cadeias de User-Agent inteiramente no teu navegador usando uma biblioteca de JavaScript do lado do cliente, não é enviado qualquer dado para os nossos servidores. A cadeia de User-Agent atual do teu navegador é detetada automaticamente ao carregar a página, para que possas ver de imediato o teu próprio resultado analisado. Também podes colar qualquer cadeia de UA que tenhas copiado de um registo de servidor ou de um relatório de erro para a analisares quando quiseres. O analisador identifica a família do navegador, a versão do navegador, o motor de renderização (Blink, Gecko, WebKit, Trident), o sistema operativo, a versão do sistema operativo e a categoria do dispositivo (computador, telemóvel, tablet, bot). Os resultados são apresentados num formato estruturado, com cada campo claramente identificado.
Ao ler os resultados analisados, lembra-te de que não há garantia de que as cadeias de User-Agent sejam exatas, qualquer cliente pode definir a cadeia de UA que quiser e a falsificação é trivialmente fácil. O Chrome no Android, por exemplo, inclui os tokens 'Mozilla/5.0' e 'Safari' no seu UA por razões históricas de compatibilidade, e é por isso que as cadeias de UA em bruto parecem estranhas mesmo para navegadores bem conhecidos. O projeto do UA 'congelado' do Chrome (iniciado por volta de 2021) procura reduzir a fuga de informação limitando os números de versão na cadeia de UA e movendo a identificação detalhada do navegador para os cabeçalhos estruturados de Client Hints (Sec-CH-UA-*). Se estás a criar deteção de navegador para uso em produção, dá preferência à API de Client Hints em vez da análise de User-Agent sempre que possível.
A cadeia que se partiu a si própria: uma breve história do caos do User-Agent
O cabeçalho User-Agent foi introduzido na primeira especificação publicada de HTTP em 1992, concebido originalmente como uma simples identificação de uma linha do software que fazia um pedido, algo como 'NCSA_Mosaic/2.0'. O caos começou quase de imediato. Quando o Netscape Navigator foi lançado em 1994 e rapidamente dominou o mercado dos navegadores, os programadores web começaram a servir páginas 'melhoradas' apenas ao Netscape, que se identificava como 'Mozilla'. O Internet Explorer da Microsoft, lançado em 1995, precisava de receber as mesmas páginas melhoradas, por isso acrescentou 'Mozilla/2.0 (compatible; MSIE 3.0)' à sua cadeia de UA, declarando-se como Mozilla ao mesmo tempo que se identificava como MSIE.
Todos os navegadores importantes que se seguiram repetiram o mesmo padrão. O Opera acrescentou tokens de compatibilidade com o Mozilla. O Safari, construído sobre o motor KHTML bifurcado em WebKit, acrescentou 'Mozilla/5.0 (... like Gecko)' à sua cadeia. O Chrome, construído sobre o WebKit, acrescentou os tokens 'AppleWebKit' e 'Safari' para garantir que o código orientado ao Safari também funcionasse no Chrome. O resultado é que uma cadeia de UA atual do Chrome no Windows contém tokens de Mozilla, AppleWebKit, KHTML, Gecko e Safari, cinco referências diferentes a navegadores concorrentes, nenhuma das quais é a identidade própria do Chrome, que aparece apenas como 'Chrome/version' perto do fim.
A Google anunciou o projeto de Redução do User-Agent em 2020, com o objetivo de congelar a cadeia de UA num valor fixo de baixa entropia até 2022 e migrar a identificação detalhada do navegador para o mecanismo estruturado e voluntário de Client Hints. A implementação efetiva foi mais lenta do que o previsto devido a preocupações de compatibilidade web, já que milhões de aplicações web dependem da análise da cadeia de UA para uma lógica que não pode ser migrada facilmente. Isto torna o cabeçalho User-Agent um exemplo vivo de quão difícil é descontinuar uma norma da Internet defeituosa, mas profundamente enraizada: mesmo após três décadas e um reconhecimento quase universal de que o formato está partido, o esforço para o substituir mede-se em anos.