Um agente do usuário é uma “string” - ou seja, uma linha de texto - que identifica o navegador e o sistema operacional para o servidor da web. Isso parece simples, mas os agentes do usuário se tornaram uma bagunça ao longo do tempo.
O básico
Quando o seu navegador se conecta a um site, ele inclui um campo User-Agent em seu cabeçalho HTTP. O conteúdo do campo do agente do usuário varia de navegador para navegador. Cada navegador tem seu próprio agente de usuário distinto. Essencialmente, um agente do usuário é uma maneira de um navegador dizer "Oi, sou o Mozilla Firefox no Windows" ou "Oi, sou o Safari em um iPhone" para um servidor da Web.
O servidor da web pode usar essas informações para exibir diferentes páginas da web em diferentes navegadores da web e diferentes sistemas operacionais. Por exemplo, um site pode enviar páginas para dispositivos móveis a navegadores móveis, páginas modernas para navegadores modernos e uma mensagem "atualize seu navegador" para o Internet Explorer 6.
Examinando Agentes do Usuário
Por exemplo, aqui está o agente do usuário do Firefox no Windows 7:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0
Agora, vamos dar uma olhada no agente do usuário do Internet Explorer 9, que é:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Nós vamos voltar a isso em um minuto. Primeiro, vamos analisar também o agente do usuário do Google Chrome:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.52 Safari/536.5
A bagunça de cordas do agente do usuário
O Mosaic foi um dos primeiros navegadores. Sua string do agente do usuário era NCSA_Mosaic / 2.0. Mais tarde, o Mozilla veio (mais tarde renomeado Netscape), e seu agente de usuário era o Mozilla / 1.0. O Mozilla era um navegador mais avançado que o Mosaic - em particular, suportava frames. Os servidores da Web verificaram se o agente do usuário continha a palavra Mozilla e enviavam páginas contendo quadros para navegadores Mozilla. Para outros navegadores, os servidores da web enviavam as páginas antigas sem quadros.
Por fim, o Internet Explorer da Microsoft surgiu e também suportou frames. No entanto, o IE não recebeu páginas da web com frames, porque os servidores da web apenas enviaram esses para os navegadores da Mozilla. Para corrigir esse problema, a Microsoft adicionou a palavra Mozilla ao seu agente de usuário e lançou informações adicionais (a palavra “compatível” e uma referência ao IE.) Os servidores da Web ficaram felizes em ver a palavra Mozilla e enviaram as páginas modernas. Outros navegadores que vieram depois fizeram a mesma coisa.
Os servidores da web não se importam com a string exata do agente do usuário. Eles apenas verificam se ela contém uma palavra específica.
Usos
Os servidores da Web usam agentes de usuários para diversas finalidades, incluindo:
- Servindo páginas da web diferentes para diferentes navegadores da web. Isso pode ser usado para o bem - por exemplo, para servir páginas da Web mais simples para navegadores mais antigos - ou mal - por exemplo, para exibir uma mensagem “Esta página da Web deve ser exibida no Internet Explorer”.
- Exibição de conteúdo diferente em sistemas operacionais diferentes - por exemplo, exibindo uma página enxuta em dispositivos móveis.
- Coletando estatísticas mostrando os navegadores e sistemas operacionais em uso por seus usuários. Se você já viu estatísticas de compartilhamento de mercado do navegador, é assim que elas são adquiridas.
Os robôs de rastreamento da Web usam agentes do usuário também. Por exemplo, o rastreador da Web do Google se identifica como:
Googlebot/2.1 (+https://www.google.com/bot.html)
Os servidores da Web podem dar um tratamento especial aos bots - por exemplo, permitindo que eles passem por telas de registro obrigatórias. (Sim, isso significa que às vezes você pode ignorar as telas de registro definindo seu agente do usuário para o Googlebot.)
Os servidores da Web também podem dar ordens a bots específicos (ou a todos os bots) usando o arquivo robots.txt. Por exemplo, um servidor da Web poderia impedir que um bot específico desaparecesse ou informar a outro bot para indexar apenas algumas áreas do site. No arquivo robots.txt, os bots são identificados pelas strings de agente do usuário.
Todos os principais navegadores contêm maneiras de definir agentes de usuário personalizados, para que você possa ver o que os servidores da Web enviam para diferentes navegadores. Por exemplo, defina o navegador da área de trabalho como a string do agente do usuário de um navegador móvel e você verá as versões móveis das páginas da web na sua área de trabalho.