# Hva er gzip, og hvordan brukes verktøyet?

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:

```bash
gzip option file(s)
```

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`:

```bash
gzip example.txt
```

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:

<table>
  <thead>
    <tr>
      <th>Alternativ</th>
      <th>Beskrivelse</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`-1` … `-9`</td>
      <td>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`</td>
    </tr>
    <tr>
      <td>`-r`</td>
      <td>Skanner katalogen rekursivt (inkludert alle underkataloger) og komprimerer eller dekomprimerer alle filene den inneholder</td>
    </tr>
    <tr>
      <td>`-f`</td>
      <td>Tvinger gzip-komprimering og overskriver eksisterende filer med samme navn om nødvendig</td>
    </tr>
    <tr>
      <td>`-d`</td>
      <td>Dekomprimerer den valgte filen til den gjeldende katalogen</td>
    </tr>
    <tr>
      <td>`-k`</td>
      <td>Hindrer at den opprinnelige filen blir slettet</td>
    </tr>
    <tr>
      <td>`-l`</td>
      <td>Viser informasjon som komprimeringsforholdet til en komprimert fil</td>
    </tr>
    <tr>
      <td>`-c`</td>
      <td>Sender den komprimerte filen til standardutdata (vanligvis skjermen som er koblet til kommandolinjen)</td>
    </tr>
    <tr>
      <td>`-q`</td>
      <td>Undertrykker alle gzip-meldinger</td>
    </tr>
    <tr>
      <td>`-t`</td>
      <td>Tester integriteten til den komprimerte filen</td>
    </tr>
    <tr>
      <td>`-h`</td>
      <td>Viser alle tilgjengelige alternativer</td>
    </tr>
  </tbody>
</table>

## 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](https://www.gzip.org/ "gzip.org – the official website of the compression program") 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:

```txt
<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>
```

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
<?php
ob_start("ob_gzhandler");
?>
```

### 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](https://wordpress.org/plugins/w3-total-cache/ "Web performance optimization for WordPress projects: 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](https://wp-rocket.me/ "WP Rocket website")**: 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](https://wordpress.org/plugins/wp-performance-score-booster/ "WordPress.org: WP Performance Score Booster Download")**: 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:

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

## 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](https://www.whatsmyip.org/http-compression-test/ "HTTP Compression Test – WhatsMyIP.org").


This is a markdown version of: [https://www.ionos.com/nb-no/digitalguide/server/kunnskap/hva-er-gzip-og-hvilke-fordeler-har-programmet/](https://www.ionos.com/nb-no/digitalguide/server/kunnskap/hva-er-gzip-og-hvilke-fordeler-har-programmet/) for AI/LLM consumption.