Boba.no

Brukaragentar

Sundag 07. juni 2009, klokka 21:27

Ein brukaragent er ein tekststreng som vevmysaren din sender til ein vevtenar kvar gong den vil ha noko (ei vevside, eit bilete, kva som helst som ligg der). Dette er for å identifisera kva vevmysar du har. I ein optimal verd, utan krig og fred og religion og politikk og sånn, så ville me ikkje ha trengt dette. Alle vevmysarane ville fungert nett på same viset, synt fram vevsider skikkeleg, følgd vevstandardane godt, oppført seg. Slik er det ikkje i dag. Vevarar veit kva eg pratar om. Den usamanhangande veven, der sidene anten fungerer for den store, stygge ulven eller for alle raudhettene kring om. Skal det vera samsvar mellom det du ser i den eine vevmysaren og alle dei andre, må du nytta mykje tid og krefter på å slita deg i håret, feilsøka, prøva deg fram og til slutt lura inn kode som fungerer i båe. Stygg kode. Ekkel kode. For ein stygg og ekkel nettlesar. Dette er slitsamt og trist, men slik er altså stoda.

Ein gong i tida fann dei ut at det kanskje kunne vera lurt med brukaragentar (om dette var dei same «dei» som ofte seier at det vert regn, vitast ikkje). Då kunne vevarar til dømes gje ei side til den store, stygge ulven, og ei anna til raudhettene. Men det viste seg at det ikkje skulle vera så enkelt. For å forstå kvifor, lyt me titta litt attende. Me skal til nittitalet, då vevmysaren Mosaic gjorde verdsveven populær. Mosaic kom ut i 1993. Det fanst sjølvsagt andre vevmysarar då, men ingen av dei fekk like mange brukarar som Mosaic. Denne mysaren kunne til og med syna fram bilete i teksten. Brukaragent-strengen såg slik ut1:
NCSA_Mosaic/2.0 (Windows 3.1)

Så kom Netscape Navigator. Mange av dei same folka som arbeidde med Mosaic, hadde no kome til Netscape. Målet var å laga ein «Mosaic killer», og difor var kodenamnet på Netscape «Mozilla». Vevmysaren kom ut til jol i 1994, og han vart kjempepopulær. Innan 1996 var dette den mest populære vevmysaren på marknaden. Brukaragenten såg slik ut:
Mozilla/1.0 (Win3.1)

Ein av grunnane til at Netscape Navigator vart så populær, var at den hadde støtte for råmer, blinkande og rullande tekst. Jaudå, du hugsar det nok. Tekst som flaut over skjermen i ein endelaus straum. Netscape hadde òg infokapslar og JavaScript. Ojojoj! Men det var altså råmene som var det verkeleg nye, kule. I dag veit me betre. I dag veit me at råmer er fælslege. Men dei visste ikkje det på nittitalet. Vevarar på nittitalet byrja med agentsniffing. Nei, dette var ingenting skummelt, seksuelt eller ekkelt, men rett og slett å sjekka agentstrengen for å finna ut kva vevmysar ein vitjar hadde. Viss vitjaren nytta «Mozilla», vart mysaren sendt til ei side med råmer, medan alle dei bakstreverske mysarane utan støtte for slikt vart sendt til ei side utan råmer.

Samstundes hadde Microsoft endeleg skjønt at det kunne vera lurt å satsa litt på denne såkalla verdsveven, sjølv om dei innest inne ikkje hadde noko særskild tru på den. Bill Gates trudde sjølv at det berre var ein motegreie som kom til å forsvinna ganske snøgt. Jaudå, kanskje er verdsveven ein motegreie, men i så fall har det ikkje gått snøgt. Gates må nok venta ei stund til før han kan seia «Kva var det eg sa?». Kor som er, Microsoft ville ha sin del av kaka, så dei kjøpte kjeldekoden til ein Mosaic-variant frå Spyglass. Dei omdøypa den, gav den eit nytt bumerke og la til ting som råmer og slikt. Denne vevmysaren, Internet Explorer, kom ut i 1995, og Microsoft trudde at dei no skulle erobra verdsveven. Dette hendte ikkje, av di dei vevarane som dreiv med sniffing, sat jo berre og sniffa etter Mozilla. Og det var no brukaragent-strengane gjekk ad undas, for Microsoft – glupe som dei er – fann på at dei kunne jo skriva at Internet Explorer kunne sameinast Mozilla. Så då vart brukaragenten slik:
Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)

No fekk også Explorer servert råmer, og vart med eitt ein verdig konkurrent til Netscape. For å verkeleg taka innersvingen på dei, leverte Microsoft vevmysaren sin gratis med Windows, og seinare så innebygd og integrert at det vart umogleg å fjerna den. Frå å ha 86 %, gjekk Netscape ned til knappe 20 % på kort tid. Til slutt innsåg Netscape at slaget var tapt, men nekta å leggja seg ned og døy. Dei slapp kjeldekoden ut i det fri, og byrja utviklinga av ein ny vevmotor som heita Gecko. Denne baserte dei Mozilla Application Suite på, ein vevmysar (med meir) som vart lansert i 2002. Og det er no det verkeleg vert innvikla, for brukaragenten såg slik ut:
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1) Gecko/20020826

I mellomtida vart Netscape kjøpt opp av AOL. Mozilla Application Suite fekk halda fram i det fri, og Netscape – som Mozilla Application Suite (frå no berre Mozilla) var basert på – baserte seg sjølv på Mozilla ei stund fram, men til slutt vart Netscape lagt ned. Frå Mozilla kom det eit nytt hjartebarn: Phoenix, seinare Firebird og til sist Firefox. Og Firefox, som var basert på Mozilla, som køyrte Gecko-motoren og var basert på Netscape, fekk ein uhorveleg langt brukaragent-streng:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041108 Firefox/1.0

I 2006 vart Mozilla døpt om til Seamonkey, og fekk saman med Firefox laupa fritt. Også denne hadde ein uhorveleg lang agent-streng:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.1) Gecko/20060130 SeaMonkey/1.0

No byrja folk å få opp auga for god kode, og kasta vekk råmer og sånt tøv. No skulle det vera ein sameint vev, med skikkeleg definerte vevstandardar som fungerte likt i alle nettlesarar. Men nett kva denne standarden skulle vera, var det usemje om. Det var særskild éin vevmysar som ikkje ville spela på lag. Kan du gissa kva? Jau, nettopp, Internet Explorer. Så då måtte vevarar fram med sniffarane sine att, og gje god kode til dei mysarane med Gecko-motor, og Microsoft-kode til Explorer. Men kva med alle gode vevmysarar som ikkje var basert på Gecko, til dømes Konqueror (som kom ut i 1996)? Konqueror var basert på KHTML-motoren, som var like flink og gjæv som Gecko (samanlikna med Trident-motoren i Explorer), men vevmysaren fekk lell dårleg Microsoft-kode. Så løysinga var å skriva at KHTML var litt likt Gecko, og då vart strengen sjåande slik ut:
Mozilla/5.0 (compatible; Konqueror/3.2; Linux) (KHTML, like Gecko)

Apple likte KHTML, men tykte ikkje motoren var flink nok. Så dei lærte han nokre nye triks, og kalla den nye motoren for WebKit. Vevmysaren deira var Safari, og kom fyrst ut i 2003. Safari køyrte altså med WebKit, som likte sider frå KHTML, som fungerte like godt som Gecko. Forvirra? Vel, kva du trur vevarar var då dei kom over agentstrengen til Safari?
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; sv-se) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5

Og verre vart det. Google, som hadde etablert seg som ein gigantisk tenestetilbydar med både straumpost, vevsøk, vevstatistikk, vevreklame, nettbasert kontorprogram og så bortetter, ville no ikkje berre eksistera på veven, men også vera programvara som tok deg til veven. Google starta utviklinga av Chromium i det fri. I 2008 kom Google Chrome, som var basert på Chromium – som nyttar motoren WebKit, som læst som om den er KHTML, som læst som om den er Gecko – som læst som om den er Safari, som læst som om den er Mozilla. Her gjeld det å halda tunga rett i munnen:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13

Midt i alt dette kaoset, finn me ein innovativ vevmysar som held seg roleg og skikkeleg. Dette er helten i denne historia, og heiter Opera. I 1994 ville Telenor, då Televerket, ha ein norskprodusert vevmysar å tilby kundane sine når dei leverte nett til dei. Opera Multitorg vart utvikla, men aldri offentleg sluppe. I 1995 gjekk Opera Multitorg, no berre Opera, ut frå Telenor og inn i sitt eiga selskap, og i 1996 kom vevmysaren ut. Verdas beste vevmysar kom frå vesle Noreg. Kvifor tykkjer eg den er best? Innovasjon, fart og kvalitet, heilt frå dag ein. Opera såg seg leie på vevmysarar som låst som om dei var nokon annan, og gav ein heilt enkel brukaragent:
Opera/8.54 (Windows 98; U; en)

Diverre ville dette tyda at sniffarane der ute – som sniffa etter Mozilla og Gecko – ville ikkje sjå at Opera ikkje var Internet Explorer. Ikkje noko problem, sa Opera, og gav oss eit menyval. Me kunne sjølv avgjera kva brukarstrengen vår skulle vera. Dette kan du gjera anten frå VerktøyHurtiginnstillingar (evt. berre høgreklikka på sida) – Endre nettstadinnstillingarNettverk for å endra agenten på ein einskild vevstad, eller skriva opera:config#UserAgent|SpoofUserAgentID i adresselina og velja 1–5 for å endra agenten for alle vevstadene. Då vil agenten kunne sjå slik ut:

  1. Identifiser som Opera: Opera/9.64 (X11; Linux x86_64; U; nn) Presto/2.1.1
  2. Identifiser som Firefox: Mozilla/5.0 (X11; Linux x86_64; U; nn; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.64
  3. Identifiser som Internet Exporer: Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux x86_64; nn) Opera 9.64
  4. Skjul som Firefox: Mozilla/5.0 (X11; Linux x86_64; U; nn; rv:1.8.1) Gecko/20061208 Firefox/2.0.0
  5. Skjul som Internet Explorer: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; nn)

Opera er ikkje heilt fri for svin på skogen når det gjeld brukaragentstrengen. No når Opera nærmar seg versjon nummer 10, har dei nemleg fått eit problem. Sniffarane titter ofte berre på det fyrste talet i versjonnummeret. Opera 9.64 vil berre sest på som Opera 9 av desse sniffarane. For versjon 10 vil det seia at sniffarane trur dette er Opera 1, og vil difor kanskje ikkje få servert innhaldet den skal få. For å bøta på denne bløma, læst Opera 10 som om den er Opera 9:
Opera/9.80 (X11; Linux x86_64; U; en) Presto/2.2.15 Version/10.00

Viss eg skulle hevda at det var nokon moral i denne historia, så ville det vore at agentsniffing ikkje er bra. Opera frårår det sjølv. Innhaldet skal jo vera likt same kva vevmysar du nyttar, så vevarane lyt heller prøva å følgja standarden og krevja at vevmysarprodusentar gjer det same. Opera meiner at agentsniffing lyt vera for å føra statistikk, ikkje for å endra innhald.

Vil du lesa om fleire vevmysarar og meir om historikken deira, kan du titta innom på WikiPedia: History of the web browser. Elles må eg innrømma at mykje av dette innlegget er lånt frå History of the browser user-agent string av Aaron Andersen. Har du lyst til å læra deg meir om brukaragentar, og kva alle dei tala og teikna tyder («X11 and U and nn, oh my!»), så kan du titta på UserAgentString.com.

Til sist: brukaragent-strengen din er: CCBot/1.0 (+http://www.commoncrawl.org/bot.html). Men kva vevmysar du faktisk har, nei, det er ikkje godt å vita…

  1. Strengane er basert på både versjonnummer og plattform, og etterkvart HTML-motor, språkinnstillingar og mykje anna. []

Innspel

  1. Hehe, eg kjende det att ja. Likevel god i ein norsk språkdrakt. :-)

Gje innspel

Lyst på eit anna brukarbilete? Registrer e-postadressa di hjå Gravatar.com og last opp.

Viss dette er fyrste gongen du gjev meg innspel, kan det ta litt tid før innspelet dukkar opp.

Opphavsrett © 2001 – 2010 Simon Hansen. Ettertrykk forbode utan løyve frå opphavsmannen.