Kontaktirajte podršku

Odgovaramo e-poštom, obično u roku od dva dana.

Radi zaštite od zloupotrebe, Google reCAPTCHA proverava ovo slanje. Pritom se podaci prenose Googleu. Skripta se učitava tek kada otvorite ovaj formular.

← Sve objave

Kompresija iste datoteke svaki put

O sadržaju i njegovoj proveri

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

vremebajtovi
bez kompresije2,9 ms124.755
gzip, u hodu18,1 ms34.995
brotli, u hodu14,5 ms32.685
world.js, gzip47,9 ms38.283
world.js, brotli15,9 ms38.086
bez kompresije2,9 msgzip18,1 msbrotli14,5 msworld.js gzip47,9 msworld.js brotli15,9 ms

Č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.

Oglas