Kompresija iste datoteke svaki put
U ovom članku
Apache komprimuje odgovore u hodu. Za stranicu koja je svaki put drugačija, to je jedina opcija. Za stilski list koji se menja jednom mesečno, to znači da server za svakog posetioca iznova radi isti posao, nedeljama, i svaki put baca rezultat. Za to nema keša.
Izmereno 19. avgusta 2026. preko postojeće veze, sa sopstvenim datotekama ovog sajta style.css (124 kB) i world.js (102 kB):
| vreme | bajtovi | |
| bez kompresije | 2,9 ms | 124.755 |
| gzip, u hodu | 18,1 ms | 34.995 |
| brotli, u hodu | 14,5 ms | 32.685 |
| world.js, gzip | 47,9 ms | 38.283 |
| world.js, brotli | 15,9 ms | 38.086 |
Četrdeset osam milisekundi procesora, po zahtevu, da bi se dobio rezultat identičan bajt po bajt. Na malom serveru to nije greška zaokruživanja.
Komprimovati jednom, na disku
Korak izgradnje upisuje komprimovanu datoteku pored originala, a pravilo prepisivanja je služi kada pregledač kaže da prihvata gzip. Služenje gotove datoteke košta koliko i služenje bilo koje datoteke.
gzip a ne brotli, iz dosadnog razloga: na ovoj mašini nije instaliran nijedan brotli program. Datoteke ispadnu oko 7% veće nego sa brotlijem, a vreme servera je petina onoga što košta brotli u hodu. Ta razmena se isplatila odmah, umesto čekanja na lepše rešenje.
Verzija ide u ime datoteke
Izgradnja upisuje style.css.<mtime>.gz, a ?v= u HTML kodu je isto to vreme izmene. Prepisivanje se aktivira samo kada postoji datoteka sa odgovarajućim brojem.
Taj raspored ima svojstvo koje vredi namerno projektovati: ako se stilski list promeni a ponovna izgradnja se zaboravi, broj u HTML kodu pokazuje na datoteku koja ne postoji, prepisivanje se ne aktivira, a Apache normalno služi original. U najgorem slučaju ubrzanja nema. Zastareo stilski list ne može da izađe. Svaku šemu keširanja treba proveriti tim pitanjem — kada pođe po zlu, postaje li sporo ili postaje pogrešno?
Greška usred svega
Datoteka koja se služi već je gzip, pa se na izlazu ne sme ponovo komprimovati. Konfiguracija je prvobitno postavljala no-gzip, što zaustavlja jedan od dva Apache kompresora. Drugi, mod_brotli, veselo je brotli-komprimovao gotovu gzip datoteku, dok je zaglavlje odgovora i dalje govorilo gzip.
Pregledači su dobili nečitljiv sadržaj. Nije otkriveno gledanjem stranice — otkriveno je sabiranjem bajtova i pronalaženjem broja koji nije imao smisla. Potrebni su i no-gzip i no-brotli , a samo je jedan od njih očigledan.