User agent
A számítástechnikában a user agent (felhasználói ágens, ügynök) olyan kliensalkalmazás, amely egy elosztott kliens-szerver rendszer kommunikációjában használt hálózati protokollt valósít meg. Leggyakrabban a World Wide Webet elérő alkalmazások (webböngészők, keresőrobotok stb.) esetében használják, de más rendszerek, pl. a Session Initiation Protocol (SIP) is használja a user agent kifejezést a kommunikációs munkamenet végpontjaira utalva.[1]
A webes user agentek tartozhatnak webböngészőkhöz, keresőrobotokhoz, mobiltelefonokhoz, fogyatékkal élők képernyőolvasóihoz és Braille-böngészőihez. A felhasználói ágensek működésük közben általában azonosítják magukat, alkalmazástípusukat, operációs rendszerüket, gyártójukat, a szoftver verziószámát egy rájuk jellemző azonosító karakterlánc, a user agent string, vagyis böngészőazonosító karakterlánc elküldésével. A HTTP, SIP és az SMTP/NNTP[2] protokollok esetében ezek a fejléc egy User-Agent nevű mezőjében kerülnek továbbításra. Az internetes robotok, így a keresőrobotok is, gyakran hozzátesznek ehhez egy URL-t és/vagy egy e-mail címet, hogy a webmester értesíthesse a robot gazdáját.
A user agent meghatározása
[szerkesztés]Egyes user agent programok azonosítják magukat a kliens-szerver kommunikáció során. A HTTP és SIP protokollokban az azonosítás a lekérés fejlécének (request header) User-Agent
mezőjében történik, ahogy azt az RFC 1945 leírja. Az azonosító karakterlánc alapján a kommunikációs partner a kliens igényeinek megfelelő tartalmat vagy működési paramétereket választ a munkamenethez. Például, másként formázott tartalmat küldhet egy személyi számítógép és egy okostelefon számára.
A böngészőazonosító karakterlánc az egyik kritérium, ami alapján a keresőrobotokat kizárják egy webhely egyes részeinek elérésből a Robots Exclusion Standard (robots.txt) fájl segítségével.
Titoktartással kapcsolatos problémák
[szerkesztés]A böngészőt azonosító információ részben a számítógép felhasználójának azonosítására is alkalmas; a böngészőverziók, operációsrendszer-verziók stb. körülbelül 10,5 bitnyi azonosító információt hordoznak.[3]
Formátum
[szerkesztés]Az RFC 1945 mindössze annyit kíván meg, hogy a user agent karakterlánc egy termékleíróból és opcionális megjegyzésekből kell álljon. Például egy WikiBrowser nevű böngésző azonosítója ehhez hasonló lehet: WikiBrowser/1.0 Gecko/1.0. Ahol a karakterlánc részei a következők:
- a termék neve és verziószáma (WikiBrowser/1.0)
- megjegyzések (Gecko/1.0). Ebben az esetben a böngészőmotor típusa és verziószáma.
A webböngészők által használt, a fentieken alapuló, de nemhivatalos formátum a következő: Mozilla/[verzió] ([rendszer- és böngészőinformáció]) [platform] ([platform részletei]) [kiterjesztések]. Például az iPaden futó Safari a következő karakterláncot küldi:
Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405
A string egyes részeinek magyarázata a következő:
- Mozilla/5.0: Korábban a Mozilla böngészőmotorral való kompatibilitásra utalt
- (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us): Részletek a rendszerről, amin a böngésző fut
- AppleWebKit/531.21.10: A böngésző által használt platform
- (KHTML, like Gecko): A böngészőplatform részletei
- Mobile/7B405: A böngészőben elérhető speciális kiegészítések, vagy más gyártó eszközeivel elérhető kiegészítések. Ilyen például a Microsoft Live Meeting, ami regisztrál egy bővítményt, a szerveren futó Live Meeting service pedig a karakterláncból detektálja, hogy a szoftver már telepítésre került.
User agent-hamisítás
[szerkesztés]A web története során az egyes webböngészők népszerűsége váltakozott (lásd böngészőháborúk), ami a webhelyek designereit időnként arra késztette, hogy inkább egyes kivételezett böngészőkön való jó működésre törekedjenek a World Wide Web Consortium (W3C) vagy az Internet Engineering Task Force (IETF) ajánlásainak való megfelelés helyett. A webhelyek sokszor tartalmaznak a böngésző típusát és verzióját detektáló (sniffing) kódot, ami alapján eldöntik, hogy a weboldal melyik verzióját küldjék el a böngésző felé. Ez azt okozhatja, hogy a kevésbé elterjedt böngészők lebutított tartalmat kapnak, rosszabb esetben webhely megtagadja az oldal elküldését.[4] Néhány böngésző ezért képes arra, hogy a user agentjét elrejtse (cloak) vagy meghamisítsa (spoof) a szerveroldali tartalom biztosabb megjelenítése érdekében. Például az Androidban használt böngésző Safariként azonosítja magát a jobb kompatibilitás miatt.[5]
A böngészőkön kívül más HTTP-kliensek, pl. letöltéskezelők és offline böngészők is képesek lehetnek a böngészőazonosító karakterlánc megváltoztatására.
Időnként népszerűek a webfejlesztők körében a Bármilyen böngészővel nézhető-kampányok,[6] melyek a fejlesztőket böngészőfüggetlen weboldalakat készítésére bátorítják.
A user agent-hamisítás egyik következménye lehet a böngészőhasználati statisztikák pontatlansága.
User agent-detektálás
[szerkesztés]A böngészőazonosító karakterlánc detektálása vagy user agent sniffing arra a gyakorlatra utal, hogy egyes webhelyek más-más böngészővel nézve más-más tartalmat mutatnak. Ennek egyik legitim oka a keresőrobotok speciális kezelése, például fizetési falon belül engedése lehet. Egy jellemző példa a Microsoft Exchange Server 2003 Outlook Web Access funkciója; ha Internet Explorer 6 vagy újabb verzióval jelenítik meg az OWA-t, több képesség hozzáférhető, mint más böngészőkben. A user agent-detektálást általában nem tartják követendő mintának, mert a web alapgondolatával szembe megy: bátorítja a böngészőspecifikus webfejlesztést és bünteti az új böngészőket, amiknek még nem ismert/elterjedt a user agentje. Ehelyett a W3C javasolja a szabványos, a lehető legtöbb böngészőben jól megjelenő HTML-kód készítését, és a böngészőverzió helyett böngészőképességekre való tesztelést.[7]
A kimondottan mobiltelefonokat célzó weboldalak, mint az NTT DoCoMo I-Mode-ja vagy a Vodafone Vodafone Live! portálja gyakran alapoznak a user agent-detektálásra, mivel a mobil böngészők egymástól nagyon eltérőek lehetnek. Az okostelefonok fejlett böngészői mellett sokan használnak régebbi telefonokat (feature phone-okat), melyek még nem profitáltak az elmúlt évek gyors technológiai fejlődéséből. Így a mobilos portálok gyakran teljesen más kódot generálnak attól függően, hogy milyen telefonnal nézik őket. Ezek lehetnek kis különbségek, például egyes képek átméretezése, hogy elférjen a kisebb képernyőn, vagy nagyobbak, például az egész weboldalt WML-ben kell elküldeni XHTML helyett.
A titkosítási erősség jelzése
[szerkesztés]Az Egyesült Államokban kiadott böngészők, mint a Netscape Navigator vagy az Internet Explorer a böngészőt azonosító karakterláncon belül az U, I és N betűkkel specifikálják az alkalmazott titkosítás erősségét. 1996 előtt az amerikai kormány nem engedte a 40 bitesnél hosszabb kulcsú titkosítás exportját (fegyverexportnak tekintette), így a gyártók különböző erősségű titkosítást tartalmazó böngészőverziókat állítottak elő. Az „U” (mint USA) a belföldön használható, 128 bites titkosításra utalt; az „I” (International, azaz nemzetközi) az exportálható, már akkor is nevetségesen gyenge 40 bites titkosításra, míg az „N” (none) a titkosítás hiányára.[8] Az exportkorlátozások megszüntetése után a legtöbb gyártó átállt a 256 bites titkosítás használatára.
Jegyzetek
[szerkesztés]Fordítás
[szerkesztés]- Ez a szócikk részben vagy egészben a User agent című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
Források
[szerkesztés]- ↑ Tools.ietf.org 2009: Netnews Article Format, RFC 5536. IETF, 2009. November
- ↑ Eckersley 2010: Peter Eckersley. "Browser Versions Carry 10.5 Bits of Identifying Information on Average", Electronic Frontier Foundation, 27 January 2010. Hozzáférés ideje: 25 August 2011.
- ↑ Anybrowser.org Burstein: Burstein complaining "... I've been rejected until I come back with Netscape"
- ↑ Androidcommunity.com Android-Safari: android-browser-reports-itself-as-apple-safari-4701
- ↑ Anybrowser.org Viewable: "Viewable with Any Browser" campaign "Viewable with Any Browser" campaign
- ↑ Developer.mozilla.org Cross Browser: Clary, Bob: Browser Detection and Cross Browser Support. Mozilla Developer Center. Mozilla, 2003. február 10. [2011. november 17-i dátummal az eredetiből archiválva]. (Hozzáférés: 2011. október 8.)
- ↑ zawinski-old: Zawinski, Jamie: user-agent strings (obsolete). mozilla.org, 1998. március 28. [2011. október 4-i dátummal az eredetiből archiválva]. (Hozzáférés: 2011. október 8.)