De gzip-software voor gegevenscompressie is platformonafhankelijk en wordt veel gebruikt in webontwikkeling en webprojecten als standaardoplossing voor compressie. De software kan eenvoudig worden geactiveerd en bediend via de opdrachtregel, waardoor u opslagruimte kunt besparen en de systeemprestaties kunt verbeteren.

Hoe werkt gzip?

Gzip — kort voor ‘GNU zip’ — is gebaseerd op het vrij beschikbare Deflate-algoritme, dat de LZ77 (Lempel-Ziv 77) compressiemethode combineert met Huffman-codering. Met behulp van deze technieken scannen gzip-bestanden naar dubbele gegevensreeksen. Als het programma deze terugkerende reeksen tegenkomt, vervangt het ze door een link naar de reeks die als eerste verschijnt. De lengte van deze reeksen is meestal beperkt tot 32.000 bytes. Als een tekenreeks niet voorkomt in de voorgaande 32.000 bytes, wordt deze (zonder compressie) opgeslagen in het gzip-bestand met de extensie .gz.

De procedure is beperkt tot individuele bestanden, daarom is het pack-programma tar nodig om zogenaamde tarball-archieven te maken met de extensies: .tar.gz of .tgz. Standaard wordt het originele bestand na gzip verwijderd (wanneer het rechtstreeks op een bestand wordt toegepast). U kunt dit automatische gedrag echter uitschakelen met behulp van de optionele -k parameter. Om gecomprimeerde bestanden te decomprimeren, kunt u het hulpprogramma gunzip of het juiste gzip commando gebruiken.

Overzicht van gzip-syntaxis en commando’s

Hoewel er grafische gebruikersinterfaces beschikbaar zijn voor verschillende platforms, is het natuurlijk ook mogelijk om gzip via commando’s in de terminal of opdrachtprompt te gebruiken. Zelfs beginners zullen dit gemakkelijk kunnen, aangezien gzip een klassieke opdrachtregelprogramma is dat voor dit soort gebruik is geoptimaliseerd. De algemene syntaxis heeft de volgende vorm:

gzip option file(s)
bash

Het specificeren van opties is niet vereist. Als het veld leeg wordt gelaten, gebruikt gzip gewoon de standaardinstellingen. Het volgende eenvoudige commando is bijvoorbeeld voldoende om een gecomprimeerde versie van het tekstbestand example.txt te maken:

gzip example.txt
bash

Om bestanden later uit te pakken of om instructies op te geven voor het compressieniveau, de opslaglocatie of hoe het originele bestand moet worden behandeld, moeten de opdrachten de juiste specificaties bevatten. De volgende tabel geeft een overzicht van de gzip belangrijkste opdrachten:

Optie Beschrijving
-1-9 Stelt het compressieniveau in (1–9), waarbij 1 het snelste en minst gecomprimeerde resultaat oplevert en 9 de beste maar traagste compressie biedt; het standaardniveau is 5
-r Scant de map (inclusief alle submappen) recursief en comprimeert of decomprimeert alle bestanden die deze bevat
-f Forceert gzip-compressie en overschrijft indien nodig bestaande bestanden met dezelfde naam.
-d Decomprimeert het geselecteerde bestand naar de huidige map
-k Voorkomt dat het originele bestand wordt verwijderd
-l Geeft informatie weer, zoals de compressieverhouding van een gecomprimeerd bestand.
-c Voert het gecomprimeerde bestand uit naar de standaarduitvoer (meestal het scherm dat is aangesloten op de opdrachtregel)
-q Onderdrukt alle gzip-berichten
-t Test de integriteit van het gecomprimeerde bestand.
-h Geeft een overzicht van alle beschikbare opties

Gebruiksscenario’s voor gzip-compressie

Tegenwoordig is gzip vrijwel platformonafhankelijk en kan het naar behoefte worden uitgebreid, zolang het gekozen project voldoet aan de GPL-licentie. Op Linux-systemen is het compressieprogramma meestal vooraf geïnstalleerd of direct beschikbaar via de pakketbeheerder. De officiële gzip-website biedt ook versies voor macOS en Windows. U kunt de software op deze systemen op elk moment gebruiken om opslagruimte te besparen.

Een ander belangrijk toepassingsgebied is het web. Webservers zoals Apache ondersteunen al jaren gzip-compressie en moderne browsers kunnen gecomprimeerde bestanden interpreteren en decomprimeren tijdens het weergeven van websites. Hier komt gzip volledig tot zijn recht, want wanneer deze functie is ingeschakeld, comprimeert de webserver automatisch zowel geüploade inhoud als dynamisch gegenereerde website-elementen op de server. Dit kan de laadtijden van websites aanzienlijk verkorten als onderdeel van basisoptimalisatie van websites. Ondertussen voert de browser de decompressie op de achtergrond uit zonder extra bandbreedte te verbruiken. Deze prestatieverbetering komt vooral mobiele gebruikers ten goede en kan indirect de positie van uw website in zoekmachines verbeteren.

Hoe u gzip-compressie kunt gebruiken voor uw Apache-webproject

Webservers bieden doorgaans gzip-compressie aan als een module die eenvoudigweg moet worden ingeschakeld. Tegenwoordig activeren veel webhostingproviders deze functie standaard, terwijl dat in het verleden niet altijd het geval was. Als u niet zeker weet of gzip-compressie door uw hostingprovider wordt ondersteund, kunt u rechtstreeks contact met hen opnemen of zelf een handmatige controle uitvoeren.

Op een Apache-webserver kunt u de module-instellingen controleren met behulp van een eenvoudige phpinfo() voer. De HTTP_ACCEPT_ENCODING -invoer toont u welke compressiemethode is geselecteerd — of dat er überhaupt compressie is ingeschakeld. Als gzip beschikbaar is, hebt u drie verschillende opties om deze compressietool naar uw behoeften te gebruiken.

Optie 1: Schakel gzip-compressie in het .htaccess-bestand in

Met behulp van het .htaccess-bestand kunt u map-specifieke instellingen definiëren en uw webserver in realtime configureren. Dit werkt omdat het configuratiebestand, dat zich doorgaans in de hoofdmapbevindt **,**automatisch wordtgelezen bij elk verzoek dat de server bereikt. Bij sommige webhostingproviders kan het .htaccess zich echter in een andere map bevinden, verborgen zijn of zelfs beperkt toegankelijk zijn. In dat geval kunt u alleen contact opnemen met uw hostingprovider en om toegang vragen. Als u wijzigingen kunt aanbrengen, kunt u gzip-compressie inschakelen met behulp van de module voor het Deflate-algoritme (mod_deflate) door de volgende code toe te voegen aan het .htaccess -bestand:

<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

Je hebt ook toestemming van je webhost nodig om de modules mod_gzip en mod_deflate te gebruiken.

Optie 2: gzip-compressie inschakelen via PHP

Het is mogelijk om gzip-compressie te activeren met behulp van een eenvoudige PHP-instructie. Het nadeel is dat de code afzonderlijk aan elk PHP-bestand moet worden toegevoegd. Gebruik deze optie daarom alleen als u niet over de benodigde rechten beschikt om het .htaccess bestand te bewerken. De regel code die aan het begin van elk bestand moet worden geplaatst, is als volgt:

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

Optie 3: gzip implementeren via plug-in

Naast deze twee handmatige oplossingen is er ook een variant die slechts minimale inspanning vereist om in te stellen: het activeren van de gzip-compressie met behulp van een plug-in voor het contentmanagementsysteem dat u gebruikt. Dergelijke handige extensies, die u binnen enkele minuten kunt integreren en aanpassen aan uw behoeften, zijn voornamelijk bedoeld voor CMS’en zoals WordPress, die zijn gebaseerd op PHP. De volgende lijst bevat drie van de populairste plug-ins voor de weblogsoftware:

  • W3 Total Cache: De WordPress-plug-in W3 Total Cache belooft een merkbaar verbeterde websiteprestatie. Naast verschillende cachingmechanismen en speciale mobiele ondersteuning bevat deze SEO- en gebruiksvriendelijkheidssuite ook opties om gzip-compressie in te schakelen.
  • WP Rocket: WP Rocket is een andere klassieke WordPress-cachingplugin. Het is eenvoudig te gebruiken en activeert vanaf het begin alle belangrijke prestatieoptimalisatiefuncties, waaronder gzip-compressie.
  • WP Performance Score Booster: De WP Performance Score Booster-plug-in heeft al meer dan 10.000 actieve installaties. Met deze plug-in kunt u eenvoudig gzip inschakelen en de inhoud van uw webproject efficiënt comprimeren, inclusief tekst, HTML, JavaScript, CSS, XML en meer.

Hoe gzip stap voor stap configureren op een NGINX-webserver

Als u uw website-inhoud levert via een NGINX -webserver, kunt u ook gebruikmaken van gzip-compressie om de laadtijd van uw project te verbeteren. Hiervoor hoeft u alleen maar de ngx_http_gzip_module te configureren. Standaard is de gzip, die de compressieservice in- of uitschakelt, uitgeschakeld.

Om deze instelling te wijzigen, opent u het hoofdconfiguratiebestand nginx.conf en zoekt u de gzip. Vervang gzip off door gzip on. In de volgende tabel worden het doel en de opties van enkele aanvullende richtlijnen voor het configureren van gzip-compressie in NGINX uitgelegd:

Richtlijn Syntaxis Standaardinstelling Beschrijving
gzip_buffers gzip_buffers number size; gzip_buffers 32 4k \ 16 8k; Bepaalt het aantal en de grootte van de buffers die tijdens het compressieproces worden gebruikt
gzip_comp_level gzip_comp_level level; gzip_comp_level 1; Stelt het compressieniveau in; geldige waarden: 1–9
gzip_min_length gzip_min_length length; gzip_min_length 20; Specificeert de minimale lengte (in bytes) voor een bestand dat moet worden gecomprimeerd.
gzip_http_version gzip_http_version version; gzip_http_version 1.1; Specificeert de minimale HTTP-versie die vereist is voor gecomprimeerde reacties.
gzip_types gzip_types content-type; gzip_types text/html; Bepaalt welke inhoudstypen moeten worden gecomprimeerd (bijv. CSS, JSON, XML)

Hoe gzip-compressie te testen

Zodra u gzip-compressie voor uw website hebt geconfigureerd, kunt u verschillende tools gebruiken om te controleren of deze correct werkt en of uw webserver gecomprimeerde inhoud levert in reactie op verzoeken van klanten. Een van de meest aanbevolen tools hiervoor is Google PageSpeed Insights. Voer gewoon een willekeurige pagina van uw site in en de tool analyseert automatisch de inhoud ervan en geeft een rapport over de sterke en zwakke punten van de pagina. Onder de resultaten vindt u informatie over of gzip-compressie is ingeschakeld.

Je kunt ook een snelle gzip-test uitvoeren met behulp van de HTTP-compressietest op WhatsMyIP.org.

Ga naar hoofdmenu