Farejando o navegador - Browser sniffing

A detecção de navegador (também conhecida como detecção de navegador ) é um conjunto de técnicas usadas em sites e aplicativos da web para determinar o navegador que um visitante está usando e para fornecer conteúdo apropriado ao navegador para o visitante. Ele também é usado para detectar navegadores móveis e enviar sites otimizados para dispositivos móveis. Essa prática às vezes é usada para contornar incompatibilidades entre navegadores devido à má interpretação de HTML , Cascading Style Sheets (CSS) ou Document Object Model (DOM). Embora o World Wide Web Consortium mantenha versões centrais atualizadas de alguns dos mais importantes padrões da Web na forma de recomendações, na prática nenhum desenvolvedor de software projetou um navegador que obedeça exatamente a esses padrões; a implementação de outros padrões e protocolos, como SVG e XMLHttpRequest , também varia. Como resultado, navegadores diferentes exibem a mesma página de maneira diferente e, portanto, a detecção de navegador foi desenvolvida para detectar o navegador da web a fim de ajudar a garantir a exibição consistente do conteúdo.

Métodos sniffer

Cheirar do lado do cliente

As páginas da web podem usar linguagens de programação, como JavaScript, que são interpretadas pelo agente do usuário , com os resultados enviados ao servidor da web . Por exemplo:

var isIEBrowser = false;
if (window.ActiveXObject) {
    isIEBrowser = true;
}

// Or, shorter:
var isIE = (window.ActiveXObject !== undefined);

Este código é executado pelo computador cliente e os resultados são usados ​​por outro código para fazer os ajustes necessários no lado do cliente. Neste exemplo, o computador cliente é solicitado a determinar se o navegador pode usar um recurso chamado ActiveX . Como esse recurso era propriedade da Microsoft, um resultado positivo indicará que o cliente pode estar executando o Internet Explorer da Microsoft . Este não é mais um indicador confiável desde o lançamento de código aberto da Microsoft do código ActiveX, o que significa que ele pode ser usado por qualquer navegador.

Método de detecção de navegador padrão

O servidor da web se comunica com o cliente usando um protocolo de comunicação conhecido como HTTP , ou protocolo de transferência de hipertexto, que especifica que o cliente envie as informações do servidor sobre o navegador que está sendo usado para visualizar o site em uma sequência de agente do usuário .

Farejar do lado do servidor

Extensas técnicas de navegador permitem o rastreamento persistente do usuário, mesmo quando os usuários tentam permanecer anônimos. Consulte a impressão digital do dispositivo para obter mais detalhes sobre a impressão digital do navegador, uma técnica de detecção de esteróides relativamente nova e extensa.

Problemas e padrões

Muitos sites usam a detecção de navegador para determinar se o navegador de um visitante é incapaz de usar determinados recursos (como JavaScript , DHTML , ActiveX ou folhas de estilo em cascata ) e exibem uma página de erro se um determinado navegador não for usado. No entanto, é virtualmente impossível levar em conta a enorme variedade de navegadores disponíveis para os usuários. Geralmente, um web designer que usa a detecção de navegador para determinar que tipo de página apresentar fará um teste para os três ou quatro navegadores mais populares e fornecerá conteúdo personalizado para cada um deles. Se um usuário estiver empregando um agente de usuário não testado, não há garantia de que uma página utilizável será exibida; assim, o usuário pode ser forçado a mudar de navegador ou a evitar a página. O World Wide Web Consortium , que define padrões para a construção de páginas da web, recomenda que os sites sejam projetados de acordo com seus padrões e sejam organizados para " falhar normalmente " quando apresentados a um navegador que não pode lidar com um padrão específico.

Veja também