User agent

A Wikipédiából, a szabad enciklopédiából

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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

Fordítás[szerkesztés | forrásszöveg szerkesztése]

  • 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.

Források[szerkesztés | forrásszöveg szerkesztése]

  • IETF 2002: RFC 3261, SIP: Session Initiation Protocol, IETF, The Internet Society (2002)

Kapcsolódó szócikkek[szerkesztés | forrásszöveg szerkesztése]