Ehkäpä kaikkein loogisin ja ilmeisin osa optimointia on minimointi. Kun siirrettävää dataa on mahdollisimman vähän, on selvää, että tällöin myös latausaika on mahdollisimman pieni. Minimointi ei kuitenkaan rajoitu pelkästään tiedostokokoon, vaan myös palvelimelle lähetettyjen pyyntöjen määrää ja pyyntöjen kestoa voidaan minimoida.

Siirrettävän tiedon määrän minimoinnin tapa riippuu tiedostotyypistä. Jos kyseessä on lähdekooditiedosto, kuten CSS-, HTML- tai Javascript-tiedosto, voidaan tiedostolle suorittaa sekä minifiointi että pakkaus. Kaikkien näiden kolmen kohdalla tämä tarkoittaa yksinkertaisesti turhien välilyöntien, rivinvaihtojen ja ylimääräisten bittien poistamista tiedostosta. Tämä parantaa verkon vastetta, edistää pakkaussuhdetta sekä pienemmät tiedostot renderöityvät myös selaimessa nopeammin. Minimointi tapahtuu esimerkiksi valmiilla työkalulla, kuten YUI Compressor.

Toinen tärkeä tapa lähdekoodi- eli tekstimuotoisten tiedostojen tiedostokoon pienennykseen on pakkaus. Kaikki modernit selaimet tukevat tiedostojen lähettämistä pakattuna. Tämä vähentää vaadittua tiedonsiirtomäärää radikaalisti. Pakkaus toteutetaan asettamalla serveriltä päälle gzip- tai deflate-pakkaus. Tällöin serveri ja selain osaavat kommunikoida pakattuja tiedostoja hyödyntäen.

Myös muuntyyppisiä tiedostoja voidaan optimoida minimoinnin keinoin. Tärkein osa-alue liittyen erityisesti webiin on kuvien optimointi, sillä kuvien tiedostonsiirto täyttää keskimäärin 61 prosenttia koko sivuston suuruudesta ja jopa 70 prosenttia mobiililaitteille suunnatuista sivuista. Oikeanlaisella kuvanpakkauksella, tiedostoformaatin valinnalla ja tarkoituksenmukaisilla kuvakooilla voidaan parantaa tätä osa-aluetta huomattavasti. Esimerkiksi JPG-pakkauksella voidaan saavuttaa jopa 30:1 pakkaussuhde keskitason kuvanlaadulla [9], mutta on myös muistettava tasapainoilla kuvien terävyyden kanssa tiedostokoon ohella. Yleisesti käytössä olevia web-kuvaformaatteja ovat PNG(häviötön), JPG ja GIF.

Pyyntöjen keston minimointi ja palvelimelle lähettävien pyyntöjen lukumäärän minimointi vaativat web-sivuston toimintalogiikan ymmärtämistä. Yksinkertaistettuna jokainen sivulataus sisältää tietyn määrän pyyntöjä selaimelta palvelimelle. Pyyntöjen määrä riippuu sivuston rakenteesta: kuinka paljon lähdekooditiedostoja on käytetty, kuinka monta kuvaa sivulla on ja niin edelleen. Tätä määrää voidaan optimoida. Jokainen pyyntö myös kestää jonkin aikaa; selain ottaa yhteyttä ensin DNS-palvelimeen, joka kertoo kohdepalvelimen oikean sijainnin. TCP-yhteys avataan, jonka jälkeen voidaan avata HTTP-yhteys selaimen ja palvelimen välille. Kaikkeen tähän kuluu aikaa, vaikka yhtäkään bittiä hyötydataa ei ole siirretty. Hukka-ajan osuus kasvaa loogisesti, mitä pienempi itse ladattava hyötysisältö on. Tämä niin kutsuttu RTT-aika(round-trip time) voi vaihdella millisekunnista(LAN) pahimmassa tapauksessa jopa sekuntiin (modeemiyhteys toiselle mantereelle), mutta myös siihen voidaan vaikuttaa optimoinnilla.

Pyyntöjen keston minimointi koostuu DNS-hakujen optimoinnista sekä uudelleenohjauksien poistamisesta. Kuten aiemmin mainittiin, selain suorittaa jokaista uudella domainilla varustettua resurssia kohden uuden DNS-haun, jotta lähdepalvelin saadaan selville. Jos resursseja sijaitsee monissa eri osoitteissa, niin tämä lisää pyyntöjen kestoa ja hidastaa sivustoa. Joskus web-sovelluksissa ja –sivustoissa käytetään uudelleenohjauksia, esimerkiksi merkkaamaan resurssin uutta sijaintia, jäljittämään klikkauksia, yhdistämään ohjelman eri osia jne. Olipa syy mikä tahansa, niin nämä uudelleenohjaukset aiheuttavat lisäviivettä pyyntöihin, joten niiden määrä pitää minimoida verkkopalvelun optimoimiseksi.

Pyyntöjen lukumäärän minimointi on looginen jatkotoimenpide keston minimoinnille. Mitä vähemmän sivulataus sisältää pyynnön aiheuttavia tiedostoja, sitä vähemmän pyyntöihin kuluu kallisarvoista aikaa. Tämä voidaan toteuttaa yhdistämällä tekstimuotoisia tiedostoja suuremmiksi tiedostoiksi. Esimerkiksi kaikki Javascript-tiedostot voidaan liittää samaan tiedostoon, jolloin vaadittujen pyyntöjen määrä tippuu huomattavasti. Sama voidaan tehdä yhtä lailla CSS-tiedostoille. Myös kuvatiedostot on mahdollista yhdistää yhteen suureen kuvatiedostoon. Tämän CSS-sprite-tekniikan ideana on ladata suuri kuvatiedosto kerralla selaimeen, ja näyttää CSS-tyylitiedostoja käyttäen tarvittavassa paikassa tarvittava alue yhdistelmäkuvasta.

Näillä optimointikeinoilla verkkopalvelun sisältö saadaan minimoitua tehokkaasti.

 

Kaikki tämän juttusarjan artikkelit löydät tagin "nopeusoptimointi" alta, tai klikkaamalla tästä linkistä.

 

Lisää osoitteessa: http://lamia.fi/