Datu sa­spie­ša­nas programma „gzip“ ir daudz­plat­for­mas un tiek plaši izmantota tīmekļa izstrādē un tīmekļa projektos kā vis­pār­pie­ņemts sa­spie­ša­nas ri­si­nā­jums. To var viegli aktivizēt un lietot, iz­man­to­jot ko­man­drin­das rīku, kas palīdz ietaupīt atmiņas vietu un uzlabot sistēmas veikt­spē­ju.

Kā darbojas gzip?

Gzip — sa­īsi­nā­jums no „GNU zip“ — balstās uz brīvi pieejamo Deflate algoritmu, kas apvieno LZ77 (Lempel-Ziv 77) sa­spie­ša­nas metodi ar Huffman kodēšanu. Iz­man­to­jot šīs metodes, gzip faili meklē at­kār­to­jo­šās datu virknes. Ja programma sastopas ar šādām at­kār­to­jo­šām sekvencēm, tā tās aizstāj ar atsauci uz virkni, kas parādās pirmā. Šo secību garums parasti ir ie­ro­be­žots līdz 32 000 baitiem. Ja rakstzīm­ju virkne neparādās ie­priek­šē­jos 32 000 baitos, tā tiek saglabāta (ne­sas­pies­ta) gzip failā, kuram tiek piešķirts .gz pa­pla­ši­nā­jums.

Šī procedūra attiecas tikai uz at­se­viš­ķiem failiem, tāpēc, lai izveidotu tā sauktos tarball arhīvus ar pa­pla­ši­nā­ju­miem .tar.gz vai .tgz, ir ne­pie­cie­ša­ma ar­hi­vē­ša­nas programma tar. Pēc no­klu­sē­ju­ma sā­kot­nē­jais fails tiek dzēsts pēc sa­spie­ša­nas (ja gzip tiek piemērota tieši failam). Tomēr jūs varat atspējot šo au­to­mā­tis­ko darbību, iz­man­to­jot papildu -k parametru. Lai de­kom­pre­sē­tu sa­spies­tos failus, jūs varat izmantot vai nu gunzip utilītu, vai at­bil­sto­šo gzip komandu.

gzip sintakses un komandu pārskats

Lai gan dažādām plat­for­mām ir pieejamas grafiskās lietotāja saskarnes, gzip, protams, ir pilnīgi iespējams izmantot, iz­man­to­jot komandas terminālī vai komandu uzvednē. Ar to viegli tiks galā pat iesācēji, jo gzip ir klasisks ko­man­drin­das rīks, kas ir op­ti­mi­zēts šādai lie­to­ša­nai. Vispārīgā sintakse ir šāda:

gzip option file(s)
bash

Nav ne­pie­cie­šams norādīt pa­ra­met­rus. Ja lauks paliek tukšs, gzip vienkārši izmanto no­klu­sē­ju­ma ie­sta­tī­ju­mus. Piemēram, lai izveidotu teksta faila example.txt saspiestu versiju, pietiek ar šādu vienkāršu komandu:

gzip example.txt
bash

Lai failus izpakotu vēlāk vai norādītu prasības attiecībā uz sa­spie­ša­nas līmeni, sa­gla­bā­ša­nas vietu vai to, kā rīkoties ar oriģinālo failu, komandām būs ne­pie­cie­ša­mi at­bil­sto­ši parametri. Turp­mā­ka­jā tabulā ir sniegts pārskats par gzip sva­rī­gā­ka­jām komandām:

Iespēja Apraksts
-1-9 Nosaka sa­spie­ša­nas līmeni (1–9), kur 1 nodrošina ātrāko un vismazāk saspiestu rezultātu, bet 9 piedāvā labāko, taču lēnāko sa­spie­ša­nu; no­klu­sē­ju­ma līmenis ir 5
-r Rekursīvi pārskata di­rek­to­ri­ju (ieskaitot visus ap­akš­di­rek­to­ri­jus) un saspiež vai atspiež visus tajā esošos failus
-f Piespiež gzip sa­spie­ša­nu un ne­pie­cie­ša­mī­bas gadījumā pārraksta esošos failus ar tādu pašu nosaukumu
-d Atpakoj izvēlēto failu pa­šrei­zē­jā di­rek­to­ri­jā
-k Neļauj dzēst sākotnējo failu
-l Parāda in­for­mā­ci­ju, piemēram, saspiestā faila sa­spie­ša­nas koe­fi­cien­tu
-c Izvada saspiesto failu uz standarta izvadi (parasti uz ekrānu, kas savienots ar komandu rindu)
-q Aiztur visus gzip ziņojumus
-t Pārbauda saspiestā faila in­teg­ri­tā­ti
-h Uzskaita visas pieejamās opcijas

Gzip sa­spie­ša­nas lie­to­ša­nas gadījumi

Šodien gzip ir gandrīz ne­at­ka­rīgs no plat­for­mas un to var pa­pla­ši­nāt pēc va­ja­dzī­bas, ja vien iz­vē­lē­tais projekts atbilst GPL licencei. Linux sistēmās šis sa­spie­ša­nas rīks parasti ir iepriekš instalēts vai viegli pieejams, iz­man­to­jot pakotņu pār­val­dnie­ku. Ofi­ciā­la­jā gzip tīmekļa vietnē ir pieejamas arī versijas macOS un Windows. Šajās sistēmās prog­ram­ma­tū­ru var izmantot jebkurā brīdī, lai ietaupītu atmiņas vietu.

Vēl viena svarīga pie­lie­to­ju­ma joma ir tīmeklis. Tīmekļa serveri, piemēram, Apache, jau gadiem ilgi atbalsta gzip sa­spie­ša­nu, un mūsdienu pārlūki spēj atpazīt sa­spies­tos failus un tos atspiest tīmekļa vietnes at­tē­lo­ša­nas laikā. Tieši šeit gzip var pilnībā izcelties, jo, ja tā ir ieslēgta, tīmekļa serveris au­to­mā­tis­ki saspiež gan aug­šu­pie­lā­dē­to saturu, gan serverī dinamiski ģenerētos tīmekļa vietnes elementus. Tas var ie­vē­ro­ja­mi samazināt tīmekļa vietnes ielādes laiku kā daļu no tīmekļa vietnes pamata op­ti­mi­zā­ci­jas. Tikmēr pārlūks de­kom­pre­si­ju veic fonā, ne­pa­tē­rē­jot papildu joslas platumu. Šis veikt­spē­jas uz­la­bo­jums ir īpaši izdevīgs mobilo ierīču lie­to­tā­jiem, un tas var netieši uzlabot jūsu tīmekļa vietnes pozīciju mek­lē­tājprog­ram­mās.

Kā izmantot gzip sa­spie­ša­nu savā Apache tīmekļa projektā

Tīmekļa serveri parasti piedāvā gzip sa­spie­ša­nu kā moduli, kuru vienkārši jā­ak­ti­vi­zē. Šodien daudzi tīmekļa hostingu pa­kal­po­ju­mu sniedzēji šo funkciju aktivizē pēc no­klu­sē­ju­ma, savukārt agrāk tas nebija vienmēr tā. Ja neesat pār­lie­ci­nāts, vai jūsu hostinga pa­kal­po­ju­mu sniedzējs atbalsta gzip sa­spie­ša­nu, varat vai nu sa­zi­nā­ties ar viņiem tieši, vai arī pats veikt manuālu pārbaudi.

Apache tīmekļa serverī moduļa ie­sta­tī­ju­mus var pārbaudīt, iz­man­to­jot vienkāršu phpinfo() izvadi. HTTP_ACCEPT_ENCODING ieraksts parādīs, kura sa­spie­ša­nas metode ir izvēlēta — vai arī to, vai sa­spie­ša­na vispār ir ieslēgta. Ja gzip ir pieejams, jums ir trīs dažādas iespējas izmantot šo sa­spie­ša­nas rīku at­bil­sto­ši savām va­ja­dzī­bām.

1. variants: gzip sa­spie­ša­nas ie­spē­jo­ša­na failā .htaccess

Iz­man­to­jot .htaccess failu, varat definēt kon­krē­tiem ka­ta­lo­giem pa­re­dzē­tus ie­sta­tī­ju­mus un kon­fi­gu­rēt tīmekļa serveri reāllaikā. Tas darbojas tāpēc, ka kon­fi­gu­rā­ci­jas fails — kas parasti atrodas sakņu katalogā— tiek au­to­mā­tis­ki nolasīts katrā pie­pra­sī­ju­mā, kas nonāk serverī. Tomēr dažu tīmekļa hostingu pa­kal­po­ju­mu sniedzēju gadījumā .htaccess var atrasties citā mapē, būt paslēpts vai pat ie­ro­be­žots piekļuvei. Šādā gadījumā vienīgā iespēja ir sa­zi­nā­ties ar hostinga pa­kal­po­ju­mu sniedzēju un lūgt piekļuvi. Ja jums ir iespēja veikt izmaiņas, varat aktivizēt gzip kom­pre­si­ju, iz­man­to­jot moduli Deflate al­go­rit­mam (mod_deflate), pie­vie­no­jot šādu kodu .htaccess failam:

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>
txt
Tip

Lai izmantotu mod_gzip un mod_deflate moduli, jums būs ne­pie­cie­ša­ma arī jūsu tīmekļa mi­ti­nā­tā­ja atļauja.

2. variants: gzip sa­spie­ša­nas ie­spē­jo­ša­na ar PHP

Gzip sa­spie­ša­nu var aktivizēt, iz­man­to­jot vienkāršu PHP komandu. Trūkums ir tas, ka kods ir jā­pie­vie­no katram PHP failam atsevišķi. Tāpēc šo iespēju vajadzētu izmantot tikai tad, ja jums nav ne­pie­cie­ša­mās atļaujas, lai rediģētu failu .htaccess “. Katra faila sākumā jāievieto šāda koda rinda:

<?php
ob_start("ob_gzhandler");
?>
php

3. variants: gzip ieviešana, iz­man­to­jot spraudni

Papildus šiem diviem ma­nuā­la­jiem ri­si­nā­ju­miem pastāv arī variants, kura kon­fi­gu­rē­ša­nai ne­pie­cie­šams tikai minimāls piepūles ie­gul­dī­jums: gzip sa­spie­ša­nas ak­ti­vi­zē­ša­na, iz­man­to­jot spraudni jūsu iz­man­to­ta­jai satura pār­val­dī­bas sistēmai. Šādi noderīgi pa­pla­ši­nā­ju­mi, kurus varat instalēt dažu minūšu laikā un pielāgot savām va­ja­dzī­bām, gal­ve­no­kārt ir paredzēti tādiem PHP bāzētiem CMS kā WordPress. Turp­mā­ka­jā sarakstā ir minēti trīs po­pu­lā­rā­kie spraudņi šai emuāru prog­ram­ma­tū­rai:

  • W3 Total Cache: WordPress spraudnis „W3 Total Cache“ sola ie­vē­ro­ja­mi uzlabotu tīmekļa vietnes darbību. Papildus dažādiem kešēšanas me­hā­nis­miem un īpaši pie­lā­go­tam atbalstam mobilajām ierīcēm šis SEO un lie­to­ja­mī­bas rīku kopums ietver arī iespējas aktivizēt gzip kom­pre­si­ju.
  • WP Rocket: WP Rocket ir vēl viens klasisks WordPress kešēšanas spraudnis. Tas ir viegli lietojams un jau no paša sākuma aktivizē visas galvenās veikt­spē­jas op­ti­mi­zā­ci­jas funkcijas, tostarp gzip kom­pre­si­ju.
  • WP Per­for­man­ce Score Booster: WP Per­for­man­ce Score Booster spraudnis jau ir pār­snie­dzis 10 000 aktīvo in­sta­lā­ci­ju. Ar šo spraudni jūs varat viegli aktivizēt gzip un efektīvi saspiest jūsu tīmekļa projekta saturu, ieskaitot tekstu, HTML, Ja­vaScript, CSS, XML un citu.

Kā soli pa solim kon­fi­gu­rēt gzip NGINX tīmekļa serverī

Ja savu tīmekļa vietnes saturu no­dro­ši­nāt, iz­man­to­jot NGINX tīmekļa serveri, varat izmantot arī gzip sa­spie­ša­nu, lai sa­ma­zi­nā­tu projekta ielādes laiku. Lai to izdarītu, vienkārši jā­kon­fi­gu­rē ngx_http_gzip_module. No­klu­sē­ju­mā gzip direktīva, kas ieslēdz vai izslēdz sa­spie­ša­nas pa­kal­po­ju­mu, ir atspējota.

Lai mainītu šo ie­sta­tī­ju­mu, atveriet galveno kon­fi­gu­rā­ci­jas failu nginx.conf un atrodiet direktīvu gzip. Aiz­stā­jiet gzip off ar gzip on. Turp­mā­ka­jā tabulā ir iz­skaid­rots dažu papildu direktīvu mērķis un opcijas, kuras izmanto gzip sa­spie­ša­nas kon­fi­gu­rē­ša­nai NGINX:

Direktīva Sintakse No­klu­sē­ju­ma ie­sta­tī­jums Apraksts
gzip_buffers gzip_buffers number size; gzip_buffers 32 4k \ 16 8k; Nosaka sa­spie­ša­nas procesā izmantoto buferu skaitu un izmēru
gzip_comp_level gzip_comp_level level; gzip_comp_level 1; Nosaka sa­spie­ša­nas līmeni; pie­ļau­ja­mās vērtības: 1–9
gzip_min_length gzip_min_length length; gzip_min_length 20; Nosaka minimālo garumu (baitos) sa­spie­ža­ma­jam failam
gzip_http_version gzip_http_version version; gzip_http_version 1.1; Nosaka minimālo HTTP versiju, kas ne­pie­cie­ša­ma sa­spies­ta­jām atbildēm
gzip_types gzip_types content-type; gzip_types text/html; Nosaka, kādi satura tipi ir jāsaspiež (piem., CSS, JSON, XML)

Kā pārbaudīt gzip sa­spie­ša­nu

Kad būsiet kon­fi­gu­rē­jis gzip sa­spie­ša­nu savai tīmekļa vietnei, varat izmantot dažādus rīkus, lai pār­lie­ci­nā­tos, ka tā darbojas pareizi un ka jūsu tīmekļa serveris atbildot uz klientu pie­pra­sī­ju­miem nosūta saspiestu saturu. Viens no visvairāk ie­tei­ca­ma­jiem rīkiem šim nolūkam ir Google PageSpeed Insights. Vienkārši ievadiet jebkuru lappusi no jūsu vietnes, un rīks au­to­mā­tis­ki analizēs tās saturu un sniegs ziņojumu par lappuses veikt­spē­jas stiprajām un vājajām pusēm. Re­zul­tā­tos jūs at­ra­dī­siet in­for­mā­ci­ju par to, vai gzip kom­pre­si­ja ir ieslēgta.

Varat arī veikt ātru gzip testu, iz­man­to­jot HTTP sa­spie­ša­nas testu vietnē WhatsMyIP.org.

Go to Main Menu