Tekniikkaa: Perkeleen user agent

SV; webtekniikkaa

Kertauksena serverin tekniikasta. Kun saavutte vaikka Katiskaan, niin ensin tulette yhdelle serverille, joka ottaa vastaan sen https-jutun, jota myös SSL-sertifikaatiksi kutsutaan (ja joka ei lisää turvallisuutta mitenkään, mutta kukaan ei jaksa niitä varoituksia).

Sen jälkeen siirrytte välimuistiin (jota assijantuntijat kutsuu reverse proxyksi ja joka esittelee itsensä nimellä Varnish). Sen tehtävä on yrittää nopeuttaa saittia. Jos on historiaa pidemmältä ajalta Katiskan käytöstä, niin muistaa kuinka tuhottoman hidas se oli ei-niin-kauaa-sitten ja miten sitä riivasi satunnaiset 5xx-virheet, sivusto on saavuttamattomissa. Se hoitui tuolla cache-jutulla. Niin ja luopumisella ns. webhotellista.

Se ikäänkuin tarjoaa kopion sivusta, eikä käy hakemassa sitä muualta. Hieman samaa kuin että kaupan kassa voi heittää samantien röökiaskin tiskille, eikä lähde hakemaan sitä muualta, tai mikä vielä pahempaa, sen joutuisi ottamaan siitä kassojen totaalisen aivokuolleesta automaatista.

Jos sivu ei ole välimuistissa, eli sitä ei ole kukaan katsonut aiemmin. niin sitten se haetaan varsinaiselta serveriltä. Koska jokainen websivu on nykyään palapeli. joka kootaan aina erikseen, kun sitä halutaan katsoa, niin se vie aikaa. Sivusta ja sen monimutkaisuudesta sitten riippuu meneekö enemmän tai vähemmän aikaa. Ja jotta tuota ei tarvitsisi tehdä joka hemmetin kerta, niin käytetään välimuistia eli cachea.

Kun julkaisen vaikka uuden podcastin (niitä on muuten muutama jo editointia odottamassa), niin ensimmäinen saa sen pitkän kaavan mukaan (yleensä käyn itse piipahtamassa sillä sivulla ennen kuin jaan linkin vaikka Faceen). Sen jälkeen seuraavat saavatkin saman sivun suoraan välimuistista.

Asia edes suunnilleen selvä tähän asti?

Jotain toista viikkoa sitten aloitin (taas) säätöhommat, normaalia isomman tällä kertaa. Ideana oli tehostaa tuon välimuistin toimintaa entisestään, niin nopettajana kuin murtoyrityksiä tekevien hidastajana. Yksi kannustin oli pienentää riskiä, että aitoja käyttäjiä bannattaisiin – loppuisi ne ainaiset valitukset siitä, että Katiskaan ei pääse.

Sainkin homman rakennettua, ja ihmeellisen helposti. Olin jopa einen tyytyväinen itseeni. Aina siihen asti, kun yritin kirjautua Katiskaan – yhden podcastin takia – ja sain tylyn ilmoituksen, että minulla ei ole oikeutta kirjautua ja päästä hallintaan (joku on saattanut joskus jossain tärmätä virheilmoitukseen error 304),

Tyytyväisyys omaan kyvykkyyteen siis romahti aika nopeasti ja palattiin vanhaan tuttuun turkulaismoodiin; ei täst kuiteska mittä tul.

Tämä tapahtui viikko sitten. Olen siis viikon googlaillut aika helvetisti ja kokeillut, testannut ja muuttanut asioita ohan pahuksesti aamusta aamuyöhön. Selkä huutaa muuten hoosiannaa ja koipikrampit ovat palanneet. Treenaamista en ole edes ajatellut, mutta jostain kumman syystä – kuten että huushollissa ei ole sen suuremmin ekstra-syömistä – kalorirajat ovat pitäneet. Paino ei kuitenkaan suuremmin laske.

Ainoa hyvä puoli oli se, että teistä ei kukaan huomannut tekniikan vittuilua.

Opin aika paljon asioita googlaillessa (ja juuri nyt ei ole myötätuntoa, jos joku väittää ettei ehdi, pysty tai viitsi etsiä tietoa) ja sekin selvisi että taaskaan maailmassa ei ole ketään, joka olisi vastaavan kanssa paininut ja kysynyt/kertonut aiheesta missään.

Sivuhuomautuksena, niin webjutut ovat masentavin asia etsiä tietoa. Suurin osa sivuista on kopioinut toisiaan maalliin barf tau rypäleiden myrkyllisyys koirille, eivätkä ohjeet yleensä ole edes toimivia. Kun noinh kiljuunasta alan foorumista löytää asiaa liippaavan kysymyksen, niin taatusti siihen ei ollut kukaan vastannut. Tai sitten luultiin enemmän kuin tiedettiin ja vastaukset olivat malliin lue manuaalit ja opettele koodaamaan.

Syypää löytyi äsken, Se oli viimneinen mitä kokeilin, koska olin satavarma, että siinä ei ole vikaavikaa. Kun selailette webiä, niin teitä jää aina jälki logeihin. Kuten vaikka IP-osoite. Lisäksi se selain mitä käytätte, kertoo kuka hän on. Sitä tunnistetta kutsutaan nimeällä user agent (ei, suomennosta ei ole olemassa). Sen voi muuttaa halutessaan, mutta siinä ei ole paljon järkeä. Riski, että jää kiinni roskapostisuodattimiin kasvaa, ja osa sisällöstä muuttuu selaimen mukaan. Oikeammin se miten sisältö näytetään voi muuttua user agentin mukaan.

Kun sivuja viedään cacheen, niin noita tunnisteita poistetaan tai yksinkertaistetaan. Minä esimerkiksi poistan kielitiedot, koska on vain suomenkielistä sisältöä. Jos olisi vaikka myös ruotsiksi ja englanniksi, niin silloin kieli olisi kuljetettava mukana, koska eihäm välimuistista saa hakea suomenkielistä sivua englanninkieliselle. Tuon voi mieltää vaikka erim arkistolaatikoiksi.

Koska user agentteja on… tuhansia, niin niiden perusteella ei koskaan välimuistiteta yhtään mitään. Ja koska mobiilisivut esitetään ruudun koon mukaan (kyllä, kerrotte senkin), niin minun ei tarvitse yksinkertaistaa edes jakoon pöytäkoneet, tabletit, kännykät.

Joten poistin koko user agentin ennen cacheen menemistä. Ja jos jotain täytyy hakea sieltä viimeiseltä serveriltä, niin ei siihenkään user agent tietoa. eli mikä selain on kyseessä, tarvita.

Cacheen voidaan viedä vain staattisia eli muuttumattomia sivuja. Esimerkiksi tämä foorumi on dynaaminen, koska uusia aloituksia ja vastauksia tulee eli sivujen sisältö muuttuu koko ajan (älkää takertuko siihen, että tällä aktiivisuudella meta on hyvinkin staattinen :face_with_symbols_over_mouth:)

Sivustojen hallinta ja varsinkin kirjautumissivu ovat dynaamisia, muuttuvia. Ei kirjautumissivua voi laittaa välimuistiin, koska silloin jokainen saisi koneelleen sen ensimmäisen kävijän kirjautumisen. Joten kun yritin mennä Katiskan kirjautumiseen, niin purjehdin suoraan cachen läpi pysähtymättä mihinkään aina sinne viimeiselle serverille asti – joka hoiti kirjautumisen ja alkaisi tarjoilemaan minulle hallinnan sivuja.

Paitsi että ei. Se antoi minulle virheen, eikä päästänyt sisälle.

Jos olet lukenut tähän asti, ja vilkaisuut aloituksen otsikonkin, niin arvannet jo mistä kiikasti: kun sitä perkeleen user agentia ei ollut, koska se oli siivottu matkan varrella digihelvettiin.

Olin koko ajan varma, että kyseessä on cookie-ongelma, koska niiden uupuminen tai vääräå muoto aiheuttaa tismalleen tuollaisia oireita. Mutta evästeiden tekemiseen ei tarvita user agentia, moinen tieto ei liity asiaan mitenkään.

Sillä viimeisellä serverillä on omat asetuksena, ja toki olin käynyt nekin vilkaisemassa, enkä huomannut mitään erikoista. Paitsi että siellä oli tällainen:

    ## Block loging in with empty user-agent
	RewriteCond %{THE_REQUEST} ^POST.*wp-login [NC]
	RewriteCond %{HTTP_USER_AGENT} ^$
	RewriteRule .* - [F]

Siinä sanotaan selvällä englannin kielellä, että tyhjää user agentia ei päästetä kirjautumaan.

Vittu. Viikko!

Jokaisella tarinalla on opetuksensa. Tämän tarinan opetus ei ole, että yrittää muistaa mitä on tehnyt, ja kun on tehnyt paljon asioita, niin kaikkia ei muista – ja sen takia käskenkin niin monen asiakkaan pitää ruokinta/oirepäiväkirjaa.

Tarinan opetus on, että kun on paaluttanut ja betonoinut omat ennakkoasenteensa sen mukaan mikä on rikki ja mikä sen aiheuttaa, niin aivot eivät huomaa sitä ilmiselvää ratkaisua, vaikka se vilkkuisi punaisella valolla silmien edessä.

Valikoivaa havainnointia ja aivojen voimaa.

Sanoinko jo, että voi vittu?

Nyt ollaan puolessa yössä ja minulla on tuhannen kilokaloria syömättä tältä päivältä. Pengon kaapit ja ahmin mitä löytyy – Annasin pipareita on ainakin jäljellä.

2 Likes

Just.
No, kiitoksia, että näät tuon kaiken vaivan mitä me tavalliset kukkujat ei tajuta.
Ja ei, en vittuile.
Toivottavasti niitä pipareita oli edes avaamaton paketti.

Toiset kutoo villapaitoja, ja minä olen tyytyväinen kun saan rakennettua saitille systeemin, jossa Algeria suljetaan, mutta suomalainen Algeriassa pääsee saitille. Ero tulee siinä, että villapaidasta saattaa olla enemmän hyötyä. Silti kyse on vain luppoajan käyttämisestä.

Homma muuttuu kun sen villapaidan kavennus menee pielee. Tai Algeria-asetuksen jälkeen tulee joltain ilomantsilaiselta vieno kysymys, että mitä nyt tehdään kun Katiskan sijaan ruudulle paukahtaakin arabiaa. Villapaidan voi fiksata tai jättää tekemättä, mutta Katiskalle en oikein voi tehdä samaa.

Tai voisin. Ja pari kertaa meinannutkin :rofl:

Saisinhan minä sen tehtyä lähes huoltovapaaksi, mutta mitä kivaa siinä enää olisi. Njooh, jossain vaiheessa täytyykin, koska en enää tästä nuorru (digitaalinen perintö on muuten asia, jota kannattaisi muutenkin ihmisten miettiä, vaikka vaan kuviensa takia).

On siellä vielä ainakin yksi asia pielessä, mutta se on enemmänkin tyylirikko kuin aito vika – ja tyylirikkojen kanssa olen elänyt koko elämäni.

Pipareita on kaksi avaamatonta. Tai siis, enää yksi avaamaton. Tämän elämäntaparemontin myötä ne loppuu juhannukseen mennessä, ja sitten aletaan odottamaan joulua. Perkeleen sesonkituotteet, kuten candu canet – puhdasta vittuilua, sanon vaan.

Söin niitä 20 ja päivän kalorit jäi 1500, muutama yli. Kertoo ihan pikkuisen siitä, että eilinen ei mennyt täysin ravintoympyrän mukaan.

1 Like