Võtke ühendust toega

Vastame e-postiga, tavaliselt kahe päeva jooksul.

Väärkasutuse vältimiseks kontrollib seda saadetist Google reCAPTCHA. Seejuures edastatakse andmeid Googlele. Skript laaditakse alles selle vormi avamisel.

← Kõik postitused

Sama faili pakkimine iga kord

Sisust ja selle ülevaatamisest

Selles artiklis

Apache pakib vastuseid käigult. Lehe puhul, mis on iga kord erinev, on see ainus võimalus. Stiililehe puhul, mis muutub kord kuus, tähendab see, et server teeb sama töö iga külastaja jaoks uuesti, nädalate kaupa, ja viskab tulemuse iga kord minema. Selle jaoks pole vahemälu.

Mõõdetud 19. augustil 2026 olemasoleva ühenduse kaudu, selle saidi enda style.css (124 kB) ja world.js (102 kB) failidega:

aegbaiti
ilma pakkimiseta2,9 ms124 755
gzip, käigult18,1 ms34 995
brotli, käigult14,5 ms32 685
world.js, gzip47,9 ms38 283
world.js, brotli15,9 ms38 086
ilma pakkimiseta2,9 msgzip18,1 msbrotli14,5 msworld.js gzip47,9 msworld.js brotli15,9 ms

Nelikümmend kaheksa millisekundit protsessoriaega päringu kohta, et saada bait baidi haaval identne tulemus. Väikesel serveril ei ole see ümardusviga.

Pakkimine üks kord, kettal

Ehitusetapp kirjutab pakitud faili originaali kõrvale ja ümberkirjutusreegel serveerib seda, kui brauser ütleb, et aktsepteerib gzipi. Valmis faili serveerimine maksab sama palju kui mis tahes faili serveerimine.

gzip, mitte brotli, igava põhjuse tõttu: sellel masinal pole brotli binaarfaili paigaldatud. Failid tulevad umbes 7 % suuremad kui brotliga ja serveriaeg on viiendik sellest, mis maksab käigult brotli. See kompromiss oli väärt kohe tegemist, mitte ilusama vastuse ootamist.

Versioon on failinimes

Ehitus kirjutab style.css.<mtime>.gz, ja ?v= märgistuses on see sama muutmisaeg. Ümberkirjutus käivitub ainult siis, kui vastava numbriga fail on olemas.

Sellel korraldusel on omadus, mida tasub tahtlikult kavandada: kui stiilileht muutub ja uuesti ehitamine unustatakse, osutab märgistuse number olematule failile, ümberkirjutus ei käivitu ja Apache serveerib originaali tavapäraselt. Halvim juhtum on, et kiirendus puudub. Aegunud stiililehte välja ei tule. Iga vahemäluskeemi tuleks selle küsimuse vastu kontrollida — kui see läheb valesti, kas see muutub aeglaseks või valeks?

Viga selle keskel

Serveeritav fail on juba gzip, seega seda ei tohi väljamineku teel uuesti pakkida. Konfiguratsioon seadis algselt no-gzip, mis peatab ühe Apache kahest pakkijast. Teine, mod_brotli, pakkis valmis gzip-faili rõõmsalt brotliga, samal ajal kui vastuse päis väitis endiselt gzip.

Brauserid said loetamatu sisu. Seda ei märgatud lehte vaadates — see märgati baite kokku liites ja leides arvu, mis ei andnud mõtet. Mõlemad no-gzip ja no-brotli on vajalikud ja ainult üks neist on ilmselge.

Reklaam