Agent utilizator - șirul de identificare al aplicației client ; utilizat în mod obișnuit pentru aplicațiile care accesează site- uri web - browsere , roboți de căutare și păianjeni , telefoane mobile și alte dispozitive cu acces încorporat la resurse web.
Când vizitează un site web, aplicația client trimite de obicei informații despre ea însăși către serverul web , un șir de text care face parte din cererea HTTP , începând cu User-agent:' sau User-Agent: și, de obicei, include informații precum numele și versiunea aplicației, sistemul de operare al computerului și limba. Pentru păianjeni, acest șir conține adesea o adresă URL și o adresă de e -mail la care webmasterul poate contacta operatorul păianjenului.
Datorită dominației browserelor individuale în diferite momente din istoria World Wide Web , multe site-uri web au fost proiectate nu conform standardelor W3C și IETF , ci pentru a funcționa cu un anumit browser. Aceste site-uri trimit conținut diferit de pagină web în funcție de valoarea User-Agent pe care o primesc de la client. Acest lucru face ca site-ul să poată fi deschis doar cu câteva dintre cele mai populare browsere, iar browserele care au ID-uri ușor diferite sunt „interzise”.
Mulți webmasteri consideră că această abordare este o practică proastă și recomandă ca marcajul HTML să fie cât mai standardizat pentru a afișa corect paginile site-ului pe numărul maxim de browsere.
Site-urile web de telefoane mobile trebuie adesea să se bazeze în mare măsură pe definiția User-Agent, deoarece browserele de pe diferite telefoane mobile sunt prea diferite. Prin urmare, portalurile web mobile generează de obicei pagini diferite în funcție de modelul de telefon mobil. Aceste diferențe pot varia de la mici (redimensionarea imaginilor special pentru ecrane mai mici) la destul de semnificative ( format WML în loc de XHTML ).
Șirul User-agent este, de asemenea, folosit de webmasteri pentru a împiedica păianjenii de căutare să indexeze anumite pagini ale unui site, de exemplu atunci când indexarea anumitor pagini nu are sens sau un anumit spider pune multă sarcină pe server. Webmasterul poate folosi un fișier robots.txt special pentru a recomanda păianjenului sau pur și simplu poate configura site-ul web pentru a nu oferi aceste pagini păianjenului.
Utilizarea de către site-urile web a șirului User-agent pentru a schimba afișarea unei pagini are ca rezultat adesea browserele mai puțin populare să nu obțină conținutul complet al paginii, chiar dacă îl pot afișa corect și, în unele cazuri extreme, astfel de browsere nu primesc nimic la toate. [1] În acest sens, multe browsere au început să „ascundă” sau să „falsească” User-agent.
Un exemplu timpuriu în acest sens este utilizarea de către Internet Explorer a unui șir User-Agent care începe cu „ Mozilla/<versiune> (compatibil; MSIE <versiune>… ”) pentru a prelua conținut destinat pentru Netscape Navigator , principalul său competitor în anii 1990 . Trebuie remarcat faptul că „Mozilla” în acest caz nu este browserul open-source Mozilla lansat mult mai târziu, ci numele de cod original Navigator, care era și numele mascota Netscape ( mascota ).Acest format al User-Agent string a fost folosit de atunci de alte browsere; în special, datorită faptului că Internet Explorer a devenit dominant.
Când Internet Explorer a devenit browserul dominant, concurenți precum Firefox , Safari și Opera au integrat sisteme pentru a permite utilizatorului să aleagă un User-Agent fals, la fel ca în versiunile recente ale Explorer. Unii dintre ei (Firefox și Safari) au copiat integral valoarea User-Agent, alții (Opera) au copiat valoarea User-Agent, adăugând la sfârșit numele adevărat al browserului, ceea ce a rezultat ulterior în șirul care conține trei nume și versiuni: primul se numește „Mozilla” (adică Netscape Navigator); mai departe „MSIE” (Internet Explorer); și, în sfârșit, un browser valid precum „Opera”. Opera îți permitea și să te deghizi complet în Internet Explorer sau Firefox, ascunzând complet numele „Opera”.
În cazul Safari , șirul User-Agent conține 5 nume (Mozilla, AppleWebKit (identificatorul pentru „motor”), „KHTML, ca Gecko” (Safari WebKit-ul folosit se bazează pe motorul KHTML, Gecko este numele de cod pentru motorul versiunilor recente de Mozilla Firefox) și Safari.Astfel, dacă site-ul verifică aproape orice browser modern (cu excepția Opera), Safari îl va trece.Alte browsere bazate pe motorul WebKit funcționează similar.
Pe lângă browsere, alte programe care utilizează protocolul HTTP, cum ar fi managerii de descărcare și browserele offline , au și capacitatea de a modifica valoarea User-Agent trimisă serverului la cererea utilizatorului. Acest lucru se face probabil pentru a asigura compatibilitatea cu anumite servere (unele servere refuză să servească astfel de programe, deoarece pot pune o sarcină semnificativă asupra resurselor serverului; Google, de exemplu, returnează 403 pentru agentul python urllib implicit).
Această problemă continuă să existe în lumea browserelor și astfel a fost lansată o campanie pentru a încuraja dezvoltatorii de site-uri să proiecteze site-uri conform standardelor, și nu pentru un anumit browser.
De exemplu, multe site-uri web create în 2005 sunt mai conforme cu standardele decât au fost mai devreme în istoria Web-ului. Cu toate acestea, unele site-uri încă folosesc scripturi JavaScript învechite care blochează, în esență, alte browsere, altele decât Internet Explorer sau Netscape Navigator. Motivul pentru acest lucru este adesea copierea fără minte a codului vechi preluat de pe alte site-uri, fără a înțelege pe deplin ce efect va avea de fapt acel cod.
Un rezultat al falsificării unei valori User-Agent este supraestimarea popularității browserului corespunzător (de obicei deja popular) în statistici și subestimarea popularității altor browsere și, prin urmare, dezvoltatorii site-urilor de mai sus nu au niciun stimulent să repare compatibilitatea. Probleme.
Netscape , Mozilla , Opera și alții folosesc una dintre aceste litere pentru a indica nivelul de criptare pe care îl acceptă. Deoarece guvernul SUA nu permitea anterior exportul de sisteme de criptare cu o cheie de peste 40 de biți, au fost lansate versiuni diferite cu diferite niveluri de criptare. „U” însemna „SUA” (Statele Unite) (pentru versiunile cu o cheie de criptare de 128 de biți), „I” însemna „Internațional” (internațional) (browserul avea capacitatea de a cripta cu o cheie de 40 de biți și putea fi folosit oriunde în lume), „N” însemna „Niciunul” (fără criptare). Inițial, versiunile „U” au fost permise să fie descărcate doar de rezidenții din SUA, dar din moment ce guvernul SUA și-a relaxat politica, exportul de sisteme de criptare de nivel înalt este acum permis în majoritatea țărilor. Acum browserele sunt distribuite numai în versiunea cu litera „U” cu suport pentru criptare cu o cheie de până la 256 de biți, deoarece necesitatea unei versiuni internaționale a dispărut.