Gzip-tie­dos­to­jen pak­kaus­oh­jel­mis­to on alustojen välinen ja sitä käytetään laajalti verk­ko­ke­hi­tyk­ses­sä ja verk­kopro­jek­teis­sa en­si­si­jai­se­na pak­kaus­rat­kai­su­na. Se on helppo ottaa käyttöön ja käyttää ko­men­to­ri­vil­tä, ja sen avulla voit säästää tal­len­nus­ti­laa ja parantaa jär­jes­tel­män suo­ri­tus­ky­kyä.

Miten gzip toimii?

Gzip – lyhenne sanoista ”GNU zip” – perustuu vapaasti saa­ta­vil­la olevaan Deflate-al­go­rit­miin, jossa yh­dis­ty­vät LZ77 (Lempel-Ziv 77) -pak­kaus­me­ne­tel­mä ja Huffman-koodaus. Näitä tek­nii­koi­ta käyt­tä­mäl­lä gzip-tiedostot etsivät toistuvia merk­ki­jo­no­ja. Jos ohjelma löytää tällaisia toistuvia merk­ki­jo­no­ja, se korvaa ne viit­tauk­sel­la en­sim­mäi­se­nä esiin­ty­vään merk­ki­jo­noon. Näiden se­kvens­sien pituus on yleensä ra­joi­tet­tu 32 000 tavuun. Jos merk­ki­jo­noa ei esiinny edel­li­sis­sä 32 000 tavussa, se tal­len­ne­taan (pak­kaa­mat­to­ma­na) gzip-tie­dos­toon, joka saa .gz-päätteen.

Menettely koskee vain yk­sit­täi­siä tie­dos­to­ja, minkä vuoksi tar- pak­kaus­oh­jel­maa tarvitaan niin sa­not­tu­jen tarball-ar­kis­to­jen luomiseen, joiden tie­dos­to­pää­te on .tar.gz tai .tgz. Ole­tusar­voi­ses­ti al­ku­pe­räi­nen tiedosto pois­te­taan gzip jälkeen (kun gzip suo­ri­te­taan suoraan tie­dos­tol­le). Voit kuitenkin poistaa tämän au­to­maat­ti­sen toiminnon käytöstä käyt­tä­mäl­lä va­lin­nais­ta -k. Pa­kat­tu­jen tie­dos­to­jen pur­ka­mi­seen voit käyttää joko gunzip tai sopivaa gzip.

Yleis­kat­saus gzip-syn­tak­siin ja ko­men­toi­hin

Vaikka eri alus­toil­le on saa­ta­vil­la graafisia käyt­tö­liit­ty­miä, gzip käyttö ko­men­to­ri­vil­tä tai ko­men­to­ke­hot­tees­ta on tietysti täysin mah­dol­lis­ta. Jopa aloit­te­li­jat pystyvät siihen helposti, sillä gzip on klassinen ko­men­to­ri­vi­työ­ka­lu, joka on optimoitu juuri täl­lai­seen käyttöön. Yleinen syntaksi on seu­raa­van­lai­nen:

gzip option file(s)
bash

Asetusten mää­rit­tä­mi­nen ei ole pa­kol­lis­ta. Jos kenttä jätetään tyhjäksi, gzip käyttää ole­tus­a­se­tuk­si­aan. Esi­mer­kik­si seuraava yk­sin­ker­tai­nen komento riittää luomaan pakatun version teks­ti­tie­dos­tos­ta example.txt:

gzip example.txt
bash

Jos tiedostot halutaan purkaa myöhemmin tai määrittää asetuksia pak­kaus­ta­sol­le, tal­len­nus­pai­kal­le tai al­ku­pe­räi­sen tiedoston kä­sit­te­lyl­le, ko­men­toi­hin on syö­tet­tä­vä tar­vit­ta­vat tiedot. Seu­raa­vas­sa tau­lu­kos­sa on yh­teen­ve­to gzip tär­keim­mäs­tä ko­men­nos­ta:

Vaih­toeh­to Kuvaus
-1-9 Asettaa pak­kaus­ta­son (1–9), jossa 1 tarjoaa nopeimman ja vähiten pakatun tuloksen ja 9 tarjoaa parhaan mutta hitain pak­kauk­sen; ole­tus­ta­so on 5
-r Skannaa ha­ke­mis­ton (mukaan lukien kaikki ali­ha­ke­mis­tot) re­kur­sii­vi­ses­ti ja pakkaa tai purkaa kaikki siinä olevat tiedostot
-f Pakottaa gzip-pak­kauk­sen ja korvaa tar­vit­taes­sa olemassa olevat tiedostot, joilla on sama nimi
-d Puraa valitun tiedoston nykyiseen ha­ke­mis­toon
-k Estää al­ku­pe­räi­sen tiedoston pois­ta­mi­sen
-l Näyttää tietoja, kuten pakatun tiedoston pak­kaus­suh­teen
-c Lähettää pakatun tiedoston va­kio­läh­töön (yleensä ko­men­to­ri­vil­le kyt­ket­tyyn näyttöön)
-q Estää kaikki gzip-viestit
-t Tarkistaa pakatun tiedoston eheyden
-h Luettelee kaikki käy­tet­tä­vis­sä olevat vaih­toeh­dot

Gzip-pak­kauk­sen käyt­tö­ta­pauk­set

Nykyään gzip on lähes alus­ta­riip­pu­ma­ton ja sitä voidaan laajentaa tarpeen mukaan, kunhan valittu projekti noudattaa GPL-lisenssiä. Linux-jär­jes­tel­mis­sä pak­kaus­oh­jel­ma on yleensä esia­sen­net­tu tai helposti saa­ta­vil­la pa­ket­ti­hal­lin­nan kautta. Vi­ral­li­sel­la gzip-verk­ko­si­vus­tol­la on tarjolla myös versiot macOS:lle ja Win­dow­sil­le. Voit käyttää oh­jel­mis­toa näillä jär­jes­tel­mil­lä milloin tahansa tal­len­nus­ti­lan sääs­tä­mi­sek­si.

Toinen keskeinen so­vel­lusa­lue on verkko. Apache-kaltaiset verk­ko­pal­ve­li­met ovat tukeneet gzip-pakkausta jo vuosien ajan, ja ny­ky­ai­kai­set selaimet pystyvät tul­kit­se­maan pakattuja tie­dos­to­ja ja purkamaan ne verk­ko­si­vus­ton la­taa­mi­sen yh­tey­des­sä. Tässä gzip pääsee oi­keuk­siin­sa, sillä kun omi­nai­suus on käytössä, verk­ko­pal­ve­lin pakkaa au­to­maat­ti­ses­ti sekä ladatun sisällön että pal­ve­li­mel­la dy­naa­mi­ses­ti luodut verk­ko­si­vus­ton elementit. Tämä voi lyhentää verk­ko­si­vus­ton la­tausai­ko­ja mer­kit­tä­väs­ti osana sivuston pe­rus­op­ti­moin­tia. Samaan aikaan selain hoitaa pak­kauk­sen pur­ka­mi­sen taustalla ku­lut­ta­mat­ta yli­mää­räis­tä kais­tan­le­veyt­tä. Tämä suo­ri­tus­ky­vyn parannus hyödyttää eri­tyi­ses­ti mo­bii­li­käyt­tä­jiä, ja se voi epä­suo­ras­ti parantaa verk­ko­si­vus­to­si si­joi­tus­ta ha­ku­ko­neis­sa.

Kuinka käyttää gzip-pakkausta Apache-verk­kopro­jek­tis­sa­si

Verk­ko­pal­ve­li­met tarjoavat yleensä gzip-pak­kauk­sen moduulina, joka on vain otettava käyttöön. Nykyään monet web-pal­ve­lun­tar­joa­jat ottavat tämän omi­nai­suu­den käyttöön ole­tuk­se­na, kun taas aiemmin näin ei aina ollut. Jos et ole varma, tukeeko pal­ve­lun­tar­joa­ja­si gzip-pakkausta, voit joko ottaa suoraan yhteyttä pal­ve­lun­tar­joa­jaan tai tarkistaa asian itse ma­nu­aa­li­ses­ti.

Apache-verk­ko­pal­ve­li­mel­la voit tarkistaa moduulin asetukset yk­sin­ker­tai­sen phpinfo() avulla. HTTP_ACCEPT_ENCODING tulos näyttää, mikä pak­kaus­me­ne­tel­mä on valittuna – tai onko pakkausta yli­pää­tään käytössä. Jos gzip on käy­tet­tä­vis­sä, sinulla on kolme eri vaih­toeh­toa tämän pak­kaus­vä­li­neen hyö­dyn­tä­mi­sek­si tar­pei­de­si mukaan.

Vaih­toeh­to 1: Ota gzip-pakkaus käyttöön .htaccess-tie­dos­tos­sa

.htaccess-tiedoston avulla voit määrittää ha­ke­mis­to­koh­tai­sia asetuksia ja kon­fi­gu­roi­da verk­ko­pal­ve­lin­ta­si re­aa­lia­jas­sa. Tämä toimii, koska kon­fi­gu­raa­tio­tie­dos­to – joka yleensä sijaitsee juu­ri­ha­ke­mis­tos­sa– luetaan au­to­maat­ti­ses­ti jokaisen pal­ve­li­mel­le saapuvan pyynnön yh­tey­des­sä. Joillakin web-pal­ve­lun­tar­joa­jil­la .htaccess saattaa kuitenkin sijaita eri kansiossa, olla pii­lo­tet­tu tai jopa suojattu. Tällöin ainoa vaih­toeh­to on ottaa yhteyttä pal­ve­lun­tar­joa­jaan ja pyytää käyt­tö­oi­keut­ta. Jos pystyt tekemään muutoksia, voit ottaa gzip-pak­kauk­sen käyttöön Deflate-al­go­rit­min moduulin (mod_deflate) avulla li­sää­mäl­lä seuraavan koodin tie­dos­toon .htaccess:

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>
txt
Vinkki

Tarvitset myös web-pal­ve­lun­tar­joa­ja­si luvan mod_gzip ja mod_deflate moduulien käyttöön.

Vaih­toeh­to 2: Ota gzip-pakkaus käyttöön PHP:n kautta

Gzip-pakkaus voidaan ottaa käyttöön yk­sin­ker­tai­sel­la PHP-ko­men­nol­la. Hait­ta­puo­le­na on, että koodi on lisättävä erikseen jokaiseen PHP-tie­dos­toon. Siksi tätä vaih­toeh­toa kannattaa käyttää vain, jos sinulla ei ole tar­vit­ta­via oikeuksia .htaccess muok­kaa­mi­seen. Jokaisen tiedoston alkuun lisättävä koodirivi on seuraava:

<?php
ob_start("ob_gzhandler");
?>
php

Vaih­toeh­to 3: Ota gzip käyttöön laa­jen­nuk­sen avulla

Näiden kahden ma­nu­aa­li­sen ratkaisun lisäksi on olemassa myös vaih­toeh­to, jonka käyt­töön­ot­to vaatii vain vähän vaivaa: gzip-pak­kauk­sen ak­ti­voin­ti käyt­tä­mäl­lä käyt­tä­mä­si si­säl­lön­hal­lin­ta­jär­jes­tel­män laa­jen­nus­ta. Tällaiset hyö­dyl­li­set laa­jen­nuk­set, jotka voit asentaa muu­ta­mas­sa mi­nuu­tis­sa ja mukauttaa tar­pei­sii­si, on tar­koi­tet­tu en­si­si­jai­ses­ti WordPres­sin kal­tai­sil­le, PHP:hen pe­rus­tu­vil­le si­säl­lön­hal­lin­ta­jär­jes­tel­mil­le. Seu­raa­vas­sa luet­te­los­sa on kolme suo­si­tuin­ta laa­jen­nus­ta ky­sei­sel­le blo­gioh­jel­mis­tol­le:

  • W3 Total Cache: W3 Total Cache -WordPress-laajennus lupaa huo­mat­ta­vas­ti parempaa verk­ko­si­vus­ton suo­ri­tus­ky­kyä. Eri­lais­ten vä­li­muis­ti­toi­min­to­jen ja mo­bii­li­lait­teil­le suunnatun tuen lisäksi tämä SEO- ja käy­tet­tä­vyys­pa­ket­ti sisältää myös asetukset gzip-pak­kauk­sen käyt­töön­ot­toon.
  • WP Rocket: WP Rocket on toinen klassinen WordPress-vä­li­muis­ti­laa­jen­nus. Se on help­po­käyt­töi­nen ja aktivoi kaikki keskeiset suo­ri­tus­ky­vyn op­ti­moin­ti­toi­min­not – mukaan lukien gzip-pak­kauk­sen – heti alusta alkaen.
  • WP Per­for­mance Score Booster: WP Per­for­mance Score Booster -laa­jen­nuk­sel­la on jo yli 10 000 ak­tii­vis­ta asennusta. Tämän laa­jen­nuk­sen avulla voit helposti ottaa gzip-pak­kauk­sen käyttöön ja pakata te­hok­kaas­ti verk­kopro­jek­ti­si sisällön, mukaan lukien tekstin, HTML:n, Ja­vaSc­rip­tin, CSS:n, XML:n ja paljon muuta.

Kuinka määrittää gzip NGINX-verk­ko­pal­ve­li­mel­la vaihe vaiheelta

Jos toimitat verk­ko­si­vus­to­si sisältöä NGINX-verk­ko­pal­ve­li­men kautta, voit myös hyödyntää gzip-pakkausta pro­jek­ti­si la­tausa­jan ly­hen­tä­mi­sek­si. Tätä varten sinun tarvitsee vain määrittää ngx_http_gzip_module. Ole­tusar­voi­ses­ti gzip – joka ottaa pak­kaus­pal­ve­lun käyttöön tai poistaa sen käytöstä – on pois päältä.

Voit muuttaa tätä asetusta avaamalla pää­ase­tus­tie­dos­ton nginx.conf ja etsimällä gzip. Korvaa gzip off arvolla gzip on. Seu­raa­vas­sa tau­lu­kos­sa se­li­te­tään joidenkin NGINX:n gzip-pakkausta mää­ri­tet­täes­sä käy­tet­tä­vien li­sä­oh­jei­den tarkoitus ja vaih­toeh­dot:

Ohje Syntaksi Ole­tus­a­se­tus Kuvaus
gzip_buffers gzip_buffers number size; gzip_buffers 32 4k \ 16 8k; Määrittää pak­kauspro­ses­sin aikana käy­tet­tä­vien puskurien lu­ku­mää­rän ja koon
gzip_comp_level gzip_comp_level level; gzip_comp_level 1; Asettaa pak­kaus­ta­son; kel­vol­li­set arvot: 1–9
gzip_min_length gzip_min_length length; gzip_min_length 20; Määrittää pa­kat­ta­van tiedoston vä­him­mäis­pi­tuu­den (tavuina)
gzip_http_version gzip_http_version version; gzip_http_version 1.1; Määrittää pa­kat­tu­jen vas­taus­ten vaatiman vähimmäis-HTTP-version
gzip_types gzip_types content-type; gzip_types text/html; Määrittää, mitkä si­säl­tö­tyy­pit tulisi pakata (esim. CSS, JSON, XML)

Kuinka testata gzip-pakkausta

Kun olet mää­rit­tä­nyt gzip-pak­kauk­sen verk­ko­si­vus­tol­le­si, voit käyttää erilaisia työkaluja var­mis­taak­se­si, että se toimii oikein ja että verk­ko­pal­ve­li­me­si toimittaa pakattua sisältöä vas­tauk­se­na asia­kas­pyyn­töi­hin. Yksi suo­si­tuim­mis­ta työ­ka­luis­ta tähän tar­koi­tuk­seen on Google PageSpeed Insights. Syötä vain mikä tahansa sivusi sivu, ja työkalu analysoi sen sisällön au­to­maat­ti­ses­ti ja laatii raportin sivun suo­ri­tus­ky­vyn vah­vuuk­sis­ta ja heik­kouk­sis­ta. Tu­lok­sis­ta löydät tiedon siitä , onko gzip-pakkaus käytössä.

Vaih­toeh­toi­ses­ti voit suorittaa nopean gzip-testin WhatsMyIP.org-sivuston HTTP-pak­kaus­tes­til­lä.

Siirry pää­va­lik­koon