Kreiptis pagalbos

Atsakome el. paštu, dažniausiai per dvi dienas.

Google reCAPTCHA tikrina šį pateikimą, kad apsaugotų nuo piktnaudžiavimo; duomenys siunčiami Google. Scenarijus įkeliamas tik atvėrus šią formą.

← Visi įrašai

To paties failo glaudinimas kiekvieną kartą

Apie turinį ir jo patikrą

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

laikasbaitai
be glaudinimo2,9 ms124 755
gzip vykdymo metu18,1 ms34 995
brotli vykdymo metu14,5 ms32 685
world.js, gzip47,9 ms38 283
world.js, brotli15,9 ms38 086
be glaudinimo2,9 msgzip18,1 msbrotli14,5 msworld.js gzip47,9 msworld.js brotli15,9 ms

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

Reklama