Кориснички агент
У рачунарству кориснички агент је софтвер (софтверски агент) који ради у име корисника. На пример, читач електронске поште је поштански кориснички агент, а у СИП протоколу, термин кориснички агент се односи на обе крајње тачке у комуникационој сесији.[1]
У много случајева, кориснички агент има улогу клијента у мрежном протоколу коришћеном у комуникацији у унутар клијент-сервер рачунарских система. Тако, на пример, HTTP идентификује ко је направио захтев помоћу „User-Agent“ заглавља, чак и када клијент није под директном контролом корисника. SIP (који је заснован на HTTP) ради исто.
Идентификација корисничког агента
[уреди | уреди извор]Када софтверски агент ради у оквиру неког мрежног протокола, он често представља себе, који је тип апликације, оперативни систем, свог произвођача или верзију, тако што шаље карактеристичну идентификациону ниску рачунару са којим комуницира. У HTTP, SIP и SMTP/NNTP[2]протоколима, ова идентификација је послата у пољу заглавља User-Agent. Интернет ботови, као што су Веб кролери, често укључују и УРЛ и/или имејл адресу тако да Вебмастери могу да контактирају власника бота.
У HTTP, User-Agent ниска се често користи у преговарању о садржају, где сервер одабира одговарајући садржај или радне параметре за одговор. На пример, сервер је може искористити да одабере варијанту странице која одговара могућностима клијентског софтвера.
Ниска User-Agent је један од услова по којима Веб кролерима може бити одбијен приступ одређеним деловима Веб сајта коришћењем стандарда о искључењу робота (Robots Exclusion Standard) (robots.txt фајл).
Могући проблеми са приватношћу
[уреди | уреди извор]Као и многи други HTTP захтеви, информација у „User-Agent“ нисци доприноси личним подацима које клијент шаље серверу, с обзиром да ниске могу значајно да варирају међу корисницима.[3]
Формат
[уреди | уреди извор]Формат User-Agent ниске је тренутно дефинисан одељком 14.43 документа RFC 2616 (HTTP/1.1). Формат ниске у HTTP-у је листа токена (кључних речи) производа са могућим коментарима. На пример, ако се ваш производ зове WikiBrowser, ваша ниска корисничког агента би могла бити WikiBrowser/1.0 Gecko/1.0. „Најважнија“ компонента се наводи прва. Делови ниске су:
- Назив производа и верзија (WikiBrowser/1.0)
- Рендеринг енџин и верзија (Gecko/1.0). У нашем случају ово је рендеринг енџин и његова верзија.
На пример Сафари на Ајпеду је користио следећу ниску:
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
Делови ниске су:
- 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: Ово се користи од стране прегледача да укаже на одређена унапређења која су доступна директно у прегледачу или кроз додатке.
Лажирање корисничог агента
[уреди | уреди извор]Популарност различитих Веб прегледача је варирала кроз историју Веба и ово је утицало на дизајн веб сајтова тако да су они прављени да функционишу само са одређеним прегледачима, уместо по стандардима W3C-а или IETF-а. Веб сајтови често укључују код за откривање верзија прегледача како би прилагодили страницу која се шаље нисци корисничког агента коју су примили. Ово може значити да мање популарним прегледачима није послат неки сложенији садржај (чак и када ти прегледачи могу да прикажу такав садржај) или им се, чак, одбија приступ.[4] Због тога многи прегледачи имају могућност да замаскирају илити лажирају своју идентификацију, како би приморали сервере да им испоруче одређени садржај. На пример Андроид прегледеч се (између осталог) представља као Сафари, како би подстакао компатибилност са одређеним сајтовима.[5][6]
Други HTTP клијентски програми, као што су менаџери преузимања и офлајн прегледачи, често имају могућност да промене своје ниске корисничког агента.
Спем ботови и Веб скупљачи често користе лажне корисничке агенте.
Једно време је међу Веб програмерима било популарно да покрећу кампање Видљиво из сваког прегледача,[7] како би охрабрили друге програмере да праве Веб странице које раде добро са било којим прегледачем.
Резултат лажирања корисничих агената је да сакупљена статистика на није прецизна.
Откривање корисничког агента
[уреди | уреди извор]Термин откривање корисничког агента се односи на праксу Веб сајтова да приказују различит садржај у зависности из ког прегледача им се приступа. Откривање корисничког агента се често сматра лошим, јер подстиче прављење сајтова за одређене прегледаче и кажњава нове прегледаче чија идентификација нија препозната. Уместо тога, W3C препоручује прављење HTML кода који је по стандарду[8], дозвољавајући да се страница приказује исправно у што више прегледача, а да се тестирају могућности одређеног прегледача, а не неке његове одређене верзије или бренда.[9]
Означавање јачине енкрипције
[уреди | уреди извор]Веб прегледачи направљени у САД, као што су Нетскејп навигатор или Интернет експлорер, користе слова U, I и N у нисци корисничког агента да означе јачину енкрипције. До 1996, када је влада САД дозволила да се енкрипције са кључевима дужим од 40 бита извозе, произвођачи су испоручивали различите верзије са различитим јачинама енкрипције. „U“ означава „USA“ (за верзију са 128-битном енкрипцијом), „I“ означава „International“ - прегледач има 40-битну енкрипцију и може бити коришћен било где у свету. „N“ означава (de facto) „None“ (без енкрипције).[10] Након укидања забране извоза криптографије од стране владе САД, већина произвођача је пружила подршку за 256-битну енкрипцију.
Референце
[уреди | уреди извор]- ^ RFC 3261, SIP: Session Initiation Protocol, IETF, The Internet Society (2002)
- ^ Netnews Article Format. IETF. новембар 2009. sec. 3.2.13. doi:10.17487/RFC5536 . RFC 5536.
- ^ Peter Eckersley. "Browser Versions Carry 10.5 Bits of Identifying Information on Average", Electronic Frontier Foundation, 27 January 2010. Retrieved 25 August 2011.
- ^ Burstein complaining "... I've been rejected until I come back with Netscape"
- ^ „Архивирана копија”. Архивирано из оригинала 06. 08. 2011. г. Приступљено 09. 08. 2011.
- ^ „User Agent String explained: Android Webkit Browser”. UserAgentString.com. Архивирано из оригинала 04. 05. 2012. г. Приступљено 29. 7. 2012. „Mozilla/5.0 (Linux; U; Android 2.2; en-sa; HTC_DesireHD_A9191 Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1”
- ^ "Viewable with Any Browser" campaign
- ^ Pemberton, Stephen. „W3C Markup Validation Service”. W3C. Приступљено 18. 10. 2011.
- ^ Clary, Bob (10. 2. 2003). „Browser Detection and Cross Browser Support”. Mozilla Developer Center. Mozilla. Архивирано из оригинала 17. 11. 2011. г. Приступљено 30. 5. 2009.
- ^ Zawinski, Jamie (28. 3. 1998). „user-agent strings (obsolete)”. mozilla.org. Архивирано из оригинала 04. 10. 2011. г. Приступљено 8. 1. 2010.