Gzip-programvaren for datakomprimering er plattformuavhengig og mye brukt i webutvikling og webprosjekter som en populær komprimeringsløsning. Den kan enkelt aktiveres og brukes via kommandolinjen, noe som hjelper deg med å spare lagringsplass og forbedre systemytelsen.

Hvordan fungerer gzip?

Gzip – en forkortelse for «GNU zip» – er basert på den fritt tilgjengelige Deflate-algoritmen, som kombinerer LZ77-komprimeringsmetoden (Lempel-Ziv 77) med Huffman-koding. Ved hjelp av disse teknikkene søker gzip-filer etter identiske datastrenger. Hvis programmet støter på slike gjentakende sekvenser, erstatter det dem med en referanse til den første forekomsten av strengen. Lengden på disse sekvensene er vanligvis begrenset til 32 000 byte. Hvis en tegnstreng ikke forekommer i de foregående 32 000 byte, lagres den (uten å bli komprimert) i gzip-filen som får filtypen .gz.

Prosedyren er begrenset til enkeltfiler, og derfor trengs pakkeprogrammet tar for å opprette såkalte tarball-arkiver med filendelsene .tar.gz eller .tgz. Som standard slettes den opprinnelige filen etter gzip primering (når den brukes direkte på en fil). Du kan imidlertid deaktivere denne automatiske funksjonen ved å bruke den valgfrie -k. For å dekomprimere komprimerte filer kan du enten bruke gunzip eller den aktuelle gzip.

Oversikt over gzip-syntaks og kommandoer

Selv om det finnes grafiske brukergrensesnitt for ulike plattformer, er det selvfølgelig fullt mulig å bruke gzip via kommandoer i terminalen eller kommandoprompten. Selv nybegynnere vil finne det overkommelig, siden gzip er et klassisk kommandolinjeverktøy som er optimalisert for denne typen bruk. Den generelle syntaksen ser slik ut:

gzip option file(s)
bash

Det er ikke nødvendig å angi alternativer. Hvis feltet står tomt, bruker gzip ganske enkelt standardinnstillingene. For eksempel er følgende enkle kommando nok til å lage en komprimert versjon av tekstfilen example.txt:

gzip example.txt
bash

For å pakke ut filer senere eller angi innstillinger for komprimeringsnivå, lagringssted eller hvordan originalfilen skal håndteres, må kommandoene angis med de riktige spesifikasjonene. Tabellen nedenfor gir en oversikt over de gzip viktigste kommandoene:

Alternativ Beskrivelse
-1-9 Angir komprimeringsnivået (1–9), der 1 gir det raskeste og minst komprimerte resultatet, og 9 gir den beste, men tregeste komprimeringen; standardnivået er 5
-r Skanner katalogen rekursivt (inkludert alle underkataloger) og komprimerer eller dekomprimerer alle filene den inneholder
-f Tvinger gzip-komprimering og overskriver eksisterende filer med samme navn om nødvendig
-d Dekomprimerer den valgte filen til den gjeldende katalogen
-k Hindrer at den opprinnelige filen blir slettet
-l Viser informasjon som komprimeringsforholdet til en komprimert fil
-c Sender den komprimerte filen til standardutdata (vanligvis skjermen som er koblet til kommandolinjen)
-q Undertrykker alle gzip-meldinger
-t Tester integriteten til den komprimerte filen
-h Viser alle tilgjengelige alternativer

Bruksområder for gzip-komprimering

I dag er gzip nærmest plattformuavhengig og kan utvides etter behov, så lenge det valgte prosjektet overholder GPL-lisensen. På Linux-systemer er komprimeringsverktøyet vanligvis forhåndsinstallert eller lett tilgjengelig via pakkehåndtereren. Den offisielle gzip-nettsiden tilbyr også versjoner for macOS og Windows. Du kan når som helst bruke programvaren på disse systemene for å spare lagringsplass.

Et annet viktig bruksområde er nettet. Webservere som Apache har støttet gzip-komprimering i mange år, og moderne nettlesere kan tolke komprimerte filer og dekomprimere dem under visning av nettsiden. Det er her gzip virkelig kommer til sin rett, for når funksjonen er aktivert, komprimerer webserveren automatisk både opplastet innhold og dynamisk genererte elementer på serveren. Dette kan redusere lastetiden for nettsiden betydelig som en del av grunnleggende nettsideoptimalisering. Samtidig håndterer nettleseren dekomprimering i bakgrunnen uten å bruke ekstra båndbredde. Denne ytelsesforbedringen kommer spesielt mobilbrukere til gode, og den kan indirekte forbedre nettstedets rangering i søkemotorer.

Slik bruker du gzip-komprimering i ditt Apache-webprosjekt

Webservere tilbyr vanligvis gzip-komprimering som et modul som bare må aktiveres. I dag aktiverer mange webhotellleverandører denne funksjonen som standard, mens det tidligere ikke alltid var tilfelle. Hvis du er usikker på om gzip-komprimering støttes av webhotellleverandøren din, kan du enten kontakte dem direkte eller foreta en manuell sjekk selv.

På en Apache-webserver kan du sjekke modulinnstillingene ved hjelp av en enkel phpinfo(). HTTP_ACCEPT_ENCODING viser hvilken komprimeringsmetode som er valgt – eller om komprimering i det hele tatt er aktivert. Hvis gzip er tilgjengelig, har du tre ulike alternativer for å bruke dette komprimeringsverktøyet etter dine behov.

Alternativ 1: Aktiver gzip-komprimering i .htaccess-filen

Ved hjelp av .htaccess-filen kan du definere katalogspesifikke innstillinger og konfigurere webserveren din i sanntid. Dette fungerer fordi konfigurasjonsfilen – som vanligvis ligger i rotkatalogen– leses automatisk ved hver forespørsel som kommer til serveren. Hos enkelte webhotellleverandører kan imidlertid .htaccess ligge i en annen mappe, være skjult eller til og med ha begrenset tilgang. I så fall er din eneste mulighet å kontakte webhotellleverandøren og be om tilgang. Hvis du kan gjøre endringer, kan du aktivere gzip-komprimering ved hjelp av modulen for Deflate-algoritmen (mod_deflate) ved å legge til følgende kode i .htaccess filen:

<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
Tip

Du må også ha tillatelse fra webhotellet ditt for å kunne bruke modulene mod_gzip og mod_deflate.

Alternativ 2: Aktiver gzip-komprimering via PHP

Det er mulig å aktivere gzip-komprimering ved hjelp av en enkel PHP-kommando. Ulempen er at koden må legges til hver enkelt PHP-fil. Du bør derfor bare bruke dette alternativet hvis du ikke har de nødvendige rettighetene til å redigere .htaccess. Koden som skal plasseres i begynnelsen av hver fil, er som følger:

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

Alternativ 3: Implementere gzip via plugin

I tillegg til disse to manuelle løsningene finnes det også en variant som krever svært lite arbeid å sette opp: å aktivere gzip-komprimering ved hjelp av et plugin for det innholdsstyringssystemet du bruker. Slike nyttige utvidelser, som du kan installere på få minutter og tilpasse etter dine behov, er først og fremst beregnet på CMS-er som WordPress, som er basert på PHP. Følgende liste inneholder tre av de mest populære pluginene for denne bloggprogramvaren:

  • W3 Total Cache: WordPress-pluginet W3 Total Cache lover en merkbar forbedring av nettstedets ytelse. I tillegg til ulike caching-mekanismer og dedikert mobilstøtte, inneholder denne pakken for SEO og brukervennlighet også alternativer for å aktivere gzip-komprimering.
  • WP Rocket: WP Rocket er et annet klassisk WordPress-caching-plugin. Det er enkelt å bruke og aktiverer alle viktige ytelsesoptimaliseringsfunksjoner – inkludert gzip-komprimering – helt fra starten av.
  • WP Performance Score Booster: WP Performance Score Booster-pluginet har allerede passert 10 000 aktive installasjoner. Med dette pluginet kan du enkelt aktivere gzip og effektivt komprimere innholdet i nettprosjektet ditt, inkludert tekst, HTML, JavaScript, CSS, XML og mer.

Slik konfigurerer du gzip på en NGINX-webserver trinn for trinn

Hvis du leverer innholdet på nettstedet ditt via en NGINX-webserver, kan du også dra nytte av gzip-komprimering for å redusere lastetiden for prosjektet ditt. For å gjøre dette må du ganske enkelt konfigurere ngx_http_gzip_module. Som standard er gzip direktivet – som aktiverer eller deaktiverer komprimeringstjenesten – slått av.

For å endre denne innstillingen må du åpne hovedkonfigurasjonsfilen nginx.conf og finne direktivet gzip. Erstatt gzip off med gzip on. Tabellen nedenfor forklarer formålet med og alternativene for noen tilleggsdirektiver som brukes til å konfigurere gzip-komprimering i NGINX:

Direktiv Syntaks Standardinnstilling Beskrivelse
gzip_buffers gzip_buffers number size; gzip_buffers 32 4k \ 16 8k; Definerer antall og størrelse på buffere som brukes under komprimeringsprosessen
gzip_comp_level gzip_comp_level level; gzip_comp_level 1; Angir komprimeringsnivået; gyldige verdier: 1–9
gzip_min_length gzip_min_length length; gzip_min_length 20; Angir minimumslengden (i byte) for en fil som skal komprimeres
gzip_http_version gzip_http_version version; gzip_http_version 1.1; Angir minimumskravet til HTTP-versjon for komprimerte svar
gzip_types gzip_types content-type; gzip_types text/html; Bestemmer hvilke innholdstyper som skal komprimeres (f.eks. CSS, JSON, XML)

Slik tester du gzip-komprimering

Når du har konfigurert gzip-komprimering for nettstedet ditt, kan du bruke ulike verktøy for å kontrollere at det fungerer som det skal, og at webserveren din leverer komprimert innhold som svar på forespørsler fra brukere. Et av de mest anbefalte verktøyene for dette er Google PageSpeed Insights. Bare skriv inn en hvilken som helst side fra nettstedet ditt, så vil verktøyet automatisk analysere innholdet og gi en rapport om sidens styrker og svakheter. Blant resultatene finner du informasjon om hvorvidt gzip-komprimering er aktivert.

Du kan også gjennomføre en rask gzip-test ved hjelp av HTTP-komprimeringstesten på WhatsMyIP.org.

Go to Main Menu