Browser sniffing (cunoscut și ca browser sniffing ) este un set de tehnici utilizate pe site- uri web și aplicații web pentru a determina browserul web pe care îl folosește un vizitator și pentru a oferi vizitatorului conținut care se potrivește cu browserul. De asemenea, este folosit pentru a detecta browserele mobile și pentru a le trimite site-uri web optimizate pentru mobil. Această practică este uneori folosită pentru a evita incompatibilitățile între browsere din cauza interpretării greșite a HTML , a foilor de stil în cascadă (CSS) sau a modelului obiect document . Deși World Wide Web Consortium menține versiuni centrale actualizate ale unora dintre cele mai importante standarde web sub formă de recomandări, în practică niciun dezvoltator de software nu a dezvoltat un browser care să se conformeze exact acestor standarde; implementarea altor standarde și protocoale, cum ar fi SVG și XMLHttpRequest diferă, de asemenea. Ca rezultat, browsere diferite afișează aceeași pagină în moduri diferite, motiv pentru care scanarea browserului pentru a detecta browserul web a fost concepută pentru a asigura afișarea consecventă a conținutului.
Paginile web pot folosi limbaje de programare precum JavaScript , care sunt interpretate de agentul utilizator, iar rezultatele sunt trimise la serverul web . De exemplu:
var isIEBrowser = false ; if ( fereastră . ActiveXObject ) { isIEBrowser = true ; } // Sau, mai scurt: var isIE = ( window . ActiveXObject !== undefined );Acest cod este rulat de computerul client, iar rezultatele sunt folosite de alt cod pentru a face ajustările necesare pe partea client. Acest exemplu solicită computerului client să determine dacă browserul poate folosi caracteristica ActiveX . Deoarece această caracteristică este proprietatea Microsoft , un rezultat pozitiv va însemna că clientul poate rula Microsoft Internet Explorer . Cu toate acestea, acesta nu mai este un indicator de încredere după ce Microsoft a lansat codul ActiveX ca sursă deschisă, ceea ce înseamnă că poate fi folosit în orice browser.
Serverul web comunică cu clientul utilizând un protocol de comunicare cunoscut sub numele de HTTP sau Hypertext Transfer Protocol, care indică faptul că clientul trimite informații către server despre browserul utilizat pentru a vizualiza site-ul web în șirul User agent .
Tehnologiile extinse de browser fac posibilă urmărirea constantă a utilizatorilor, chiar dacă încearcă să rămână anonimi. Consultați Amprenta dispozitivului pentru mai multe informații despre amprentarea browserului, o tehnologie relativ nouă pentru identificarea browserului unui utilizator.
Multe site-uri web folosesc analiza browserului pentru a determina dacă browserul unui vizitator poate folosi anumite funcții (cum ar fi JavaScript , DHTML , ActiveX sau Foi de stil în cascadă ) și afișează o pagină de eroare dacă browserul respectiv nu implementează aceste caracteristici. Cu toate acestea, este aproape imposibil să se țină cont de varietatea uriașă de browsere disponibile utilizatorilor. De obicei, un designer web care folosește browserul sniffing pentru a determina ce pagină să furnizeze va testa cele trei sau patru browsere cele mai populare și va oferi conținut adaptat pentru fiecare. Dacă un utilizator folosește un agent utilizator neverificat , nu există nicio garanție că va fi difuzată o pagină utilizabilă; astfel, utilizatorul poate fi forțat fie să schimbe browserul, fie să evite astfel de pagini. Consorțiul World Wide Web , care stabilește standarde de proiectare a paginilor web, recomandă ca site-urile web să fie proiectate conform standardelor sale și adaptate pentru a „eșua cu grație” atunci când sunt afișate într-un browser care nu poate gestiona un anumit standard.