Fixe uma ferramenta e o autocolante dela aparece aqui.
Analisador de user-agent
Veja que navegador, motor de renderização, sistema operativo e tipo de dispositivo uma string user-agent indica, e o que o seu próprio navegador diz sobre si.
Navegador ou cliente
Motor de renderização
Sistema operativo
Tipo de dispositivo
Arquitetura do CPU, quando a string a indica
O que esta string não lhe diz
O que este navegador diz sobre si
Estes valores são lidos do navegador que está a usar agora, não da string acima. Ficam nesta página.
Propriedades do navegador que está a usar
Propriedade
Valor
Marcas (Client Hints)
Plataforma (Client Hints)
Idiomas
Tamanho do ecrã
Rácio de píxeis do dispositivo
Fuso horário
Cookies
WebAssembly
Web Crypto
Sobre esta ferramenta
O que é uma string user-agent
Quase todos os pedidos HTTP levam um cabeçalho User-Agent em que o cliente se identifica. Os navegadores passaram décadas a acrescentar-lhe os nomes uns dos outros para que os sites escritos para um concorrente continuassem a servi-los: é por isso que a string do Chrome começa por Mozilla/5.0, menciona AppleWebKit, KHTML, like Gecko e Safari, e que o Edge e o Opera enviam a string do Chrome com Edg/ ou OPR/ acrescentado no fim.
Por isso, um parser tem de testar por uma ordem fixa, do token mais específico para o menos específico. Esta ferramenta procura primeiro bots e bibliotecas HTTP, depois navegadores que acrescentam um token próprio, e só no fim o Chrome e o Safari, cujos tokens muitos outros navegadores repetem.
Porque é que o Chromium congelou a maior parte
A string é enviada a todos os servidores em todos os pedidos, e os seus pormenores ajudavam a fazer fingerprinting das pessoas. Por isso o Chrome reduziu-a, e outros navegadores baseados em Chromium seguiram-no. A versão é agora enviada como 131.0.0.0, em que só o número principal é real, e a parte da plataforma é um valor fixo, como Windows NT 10.0; Win64; x64 ou Android 10; K, seja qual for o sistema real.
Um site que precise dos pormenores tem de os pedir através das User-Agent Client Hints: os cabeçalhos de pedido Sec-CH-UA e navigator.userAgentData em JavaScript. A tabela por baixo do resultado mostra esses valores quando o navegador que está a usar os fornece.
Prefira a deteção de funcionalidades
Como a string está em parte congelada, imita outros navegadores e pode ser definida pelo cliente como quiser, é uma má forma de decidir que código executar. Teste antes a funcionalidade: 'share' in navigator em JavaScript ou @supports em CSS. A resposta fica então certa para navegadores de que nunca ouviu falar e para versões que ainda não existem.
Ler a string continua a fazer sentido para estatísticas, para distinguir crawlers de pessoas num log e para contornar um bug numa versão conhecida de um navegador.
Perguntas
Porque é que a versão do meu Chrome termina em .0.0.0?
O Chrome e outros navegadores baseados em Chromium reduzem a string user-agent para limitar o fingerprinting. Só é enviada a versão principal; os números secundário, de build e de patch são substituídos por zeros. A versão completa está disponível através das User-Agent Client Hints.
Uma string user-agent permite distinguir o Brave do Chrome?
Não. O Brave envia de propósito a mesma string que o Chrome, por isso um parser só consegue dizer que é um navegador baseado em Chromium. O mesmo acontece com qualquer navegador que não acrescente um token próprio.
Porque é que o meu Mac indica macOS 10.15.7?
O Safari, o Chrome e o Firefox deixaram de atualizar a versão do macOS na string em 10.15, por isso todas as versões posteriores do macOS indicam também esse número. A string também diz Intel nos Mac com Apple silicon.
Uma string user-agent pode ser falsificada?
Sim. Qualquer cliente pode enviar qualquer string, e muitos bots enviam a string de um navegador normal. Não baseie nenhuma decisão de segurança nela. Para confirmar um crawler como o Googlebot, verifique o endereço de onde veio o pedido, como o respetivo operador documenta.
A string que colo é enviada para um servidor?
Não. É analisada por JavaScript no separador do seu navegador, e a ferramenta não faz nenhum pedido de rede com ela.