Gzip je způsob komprese dat, který se na webu používá k tomu, aby server poslal stránku do prohlížeče zmenšenou. Prohlížeč ji po přijetí zase rozbalí a zobrazí. Návštěvník o ničem neví, jen se mu web načte znatelně dřív.

Přirovnání: je to jako vakuově zabalit peřinu před stěhováním. Obsah je stejný, ale zabere zlomek místa, takže se převeze rychleji. Rozbalení na místě trvá pár okamžiků.

Proč to funguje tak dobře: textové soubory, ze kterých se web skládá – HTML, styly CSS, JavaScript, JSON nebo XML – obsahují spoustu opakování. Stále dokola se v nich objevují stejné značky, mezery a názvy tříd. Komprese tato opakování nahradí krátkými odkazy a soubor se často smrskne na čtvrtinu původní velikosti i méně.

Na co se gzip naopak nehodí:

  • Obrázky – JPEG i PNG už komprimované jsou, další balení nic neušetří a jen zdrží.
  • Videa a zvuk – ze stejného důvodu.
  • Archivy – soubor ZIP nebo instalační balíček je také už zabalený.
  • Velmi malé soubory – u pár set bajtů se režie nevyplatí.

Uvnitř gzip stojí na osvědčené knihovně zlib, což je stejný základ, jaký používají archivy ZIP nebo formát PNG. Domluva mezi prohlížečem a serverem probíhá automaticky v hlavičkách HTTP: prohlížeč ohlásí, jaké komprese umí, a server podle toho odpověď zabalí. Vedle gzipu se dnes běžně používá i novější a ještě úspornější Brotli.

Přínos je největší tam, kde je spojení pomalé nebo vzdálené – na mobilních datech nebo u návštěvníků z druhého konce světa. Menší objem dat znamená méně přenesených paketů, a tím i nižší latenci při načítání. Komprese proto patří k základním krokům optimalizace webu, spolu s cache a rozumnou velikostí obrázků.