Ugyanazon fájl tömörítése újra és újra
Az Apache menet közben tömöríti a válaszokat. Egy minden alkalommal más oldalnál ez az egyetlen lehetőség. Egy havonta egyszer változó stíluslapnál viszont azt jelenti, hogy a szerver heteken át minden látogatónál újra elvégzi ugyanazt a munkát, és az eredményt minden alkalommal eldobja. Nincs hozzá gyorsítótár.
Mérés 2026. augusztus 19-én, meglévő kapcsolaton, a weboldal saját style.css (124 kB) és world.js (102 kB) fájljaival:
| idő | bájt | |
| tömörítés nélkül | 2,9 ms | 124 755 |
| gzip, menet közben | 18,1 ms | 34 995 |
| brotli, menet közben | 14,5 ms | 32 685 |
| world.js, gzip | 47,9 ms | 38 283 |
| world.js, brotli | 15,9 ms | 38 086 |
Kérésenként negyvennyolc milliszekundum processzoridő egy bájtra pontosan azonos eredményért. Egy kis szerveren ez nem kerekítési hiba.
Egyszeri tömörítés, a lemezen
Egy build-lépés az eredeti mellé írja a tömörített fájlt, egy átírási szabály pedig azt szolgálja ki, ha a böngésző jelzi, hogy elfogadja a gzipet. Egy kész fájl kiszolgálása annyiba kerül, amennyibe bármely más fájlé.
Brotli helyett gzip, egy unalmas okból: ezen a gépen nincs telepítve brotli program. A fájlok nagyjából 7%-kal nagyobbak, mint amekkorára a brotli tömörítené őket, a szerveridő pedig az ötöde annak, amennyibe a menet közbeni brotli kerül. Ezt a kompromisszumot érdemes volt most megkötni, ahelyett hogy egy szebb megoldásra várnánk.
A verzió a fájlnévbe kerül
A build ezt a fájlt írja ki: style.css.<mtime>.gz, a jelölésben szereplő ?v= pedig ugyanez a módosítási idő. Az átírás csak akkor lép életbe, ha létezik a megfelelő számot viselő fájl.
Ennek az elrendezésnek van egy tulajdonsága, amelyre érdemes szándékosan tervezni: ha a stíluslap megváltozik, és az újraépítés elmarad, a jelölésben lévő szám egy nem létező fájlra mutat, az átírás nem lép életbe, és az Apache a szokásos módon kiszolgálja az eredetit. A legrosszabb eset, hogy elmarad a gyorsulás. Elavult stíluslap nem kerülhet ki. Minden gyorsítótárazási megoldást érdemes ezzel a kérdéssel ellenőrizni — ha valami elromlik, lassú lesz, vagy hibás?
A hiba, amely közben előjött
A kiszolgált fájl már gzip, így kifelé menet nem szabad újra tömöríteni. A konfiguráció eredetileg ezt állította be: no-gzip, ami az Apache két tömörítője közül az egyiket leállítja. A másik, a mod_brotli, vidáman brotlival tömörítette a kész gzip-fájlt, miközben a válasz fejléce továbbra is ezt mondta: gzip.
A böngészők olvashatatlan tartalmat kaptak. Nem az oldal megnézésekor derült ki — hanem akkor, amikor valaki összeadta a bájtokat, és értelmetlen számot kapott. A no-gzip és a no-brotli beállításra egyaránt szükség van, és közülük csak az egyik kézenfekvő.