To paties failo glaudinimas kiekvieną kartą
Šiame straipsnyje
Apache glaudina atsakymus vykdymo metu. Puslapiui, kuris kiekvieną kartą skiriasi, tai vienintelis pasirinkimas. Stilių aprašui, kuris keičiasi kartą per mėnesį, tai reiškia, kad serveris savaičių savaites kartoja tą patį darbą kiekvienam lankytojui ir kaskart išmeta rezultatą. Jam podėlio nėra.
Išmatuota 2026 m. rugpjūčio 19 d. esamu ryšiu, naudojant pačios svetainės style.css (124 kB) ir world.js (102 kB):
| laikas | baitai | |
| be glaudinimo | 2,9 ms | 124 755 |
| gzip vykdymo metu | 18,1 ms | 34 995 |
| brotli vykdymo metu | 14,5 ms | 32 685 |
| world.js, gzip | 47,9 ms | 38 283 |
| world.js, brotli | 15,9 ms | 38 086 |
Keturiasdešimt aštuonios procesoriaus milisekundės kiekvienai užklausai, kad būtų gautas baitas į baitą toks pats rezultatas. Mažame serveryje tai nėra apvalinimo paklaida.
Suglaudinti vieną kartą diske
Paruošimo žingsnis įrašo suglaudintą failą greta originalo, o perrašymo taisyklė jį pateikia, kai naršyklė praneša priimanti gzip. Paruošto failo pateikimas kainuoja tiek, kiek bet kurio failo pateikimas.
gzip, o ne brotli, dėl nuobodžios priežasties: šiame kompiuteryje neįdiegta brotli vykdomoji programa. Failai gaunami apie 7 % didesni, nei juos padarytų brotli, o serverio laikas sudaro penktadalį brotli glaudinimo vykdymo metu sąnaudų. Šį kompromisą buvo verta priimti dabar, o ne laukti gražesnio atsakymo.
Versija įrašoma failo pavadinime
Paruošimo metu įrašomas style.css.<mtime>.gz, o žymėjime esantis ?v= yra tas pats pakeitimo laikas. Perrašymas suveikia tik tada, kai egzistuoja failas su atitinkančiu skaičiumi.
Ši tvarka turi savybę, kurios verta siekti sąmoningai: jei stilių aprašas pasikeičia, o paruošti iš naujo pamirštama, žymėjimo skaičius nurodo neegzistuojantį failą, perrašymas nesuveikia ir Apache įprastai pateikia originalą. Blogiausiu atveju trūksta pagreitėjimo. Pasenęs stilių aprašas negali būti pateiktas. Kiekvieną podėlio schemą verta patikrinti šiuo klausimu — kai kas nors nepavyksta, ar ji sulėtėja, ar tampa neteisinga?
Klaida pačiame viduryje
Pateikiamas failas jau yra gzip, todėl išeinantis jis neturi būti glaudinamas dar kartą. Iš pradžių nuostatose buvo nustatyta no-gzip, ir tai sustabdo vieną iš dviejų Apache glaudintuvų. Kitas, mod_brotli, ramiai suglaudino paruoštą gzip failą brotli formatu, o atsakymo antraštė toliau skelbė gzip.
Naršyklės gavo neperskaitomą turinį. Tai aptikta ne žiūrint į puslapį — o sudėjus baitus ir gavus nesuprantamą skaičių. Reikalingi abu: no-gzip ir no-brotli parametrai, bet akivaizdus tik vienas iš jų.