Gzip sıxma texnologiyası

Emil Hüseynov

Emil Hüseynov

"Google"un araşdırmasına görə, veb səhifənin yüklənməsinə sərf edilən vaxt 1-dən 3 saniyəyə kimi artdıqda həmin səhifədən imtina halları 32% artır.

Bundan başqa, sürətli yüklənən veb saytların axtarış nəticələrində daha üst sıralarda yerləşmə ehtimalı daha böyükdür.

Veb saytların sürətini artırmaq üçün müxtəlif üsullar mövcuddur. Belə üsullardan biri gzip proqramından istifadəni nəzərdə tutur.

İstifadəçi hansısa veb sayta daxil olmaq üçün öz qurğusunda brauzeri açır, ünvan yerində saytın adını yazıb Enter düyməsinə sıxır. Bu zaman veb serverə sorğu göndərilir, çünki veb saytın faylları veb serverdə yerləşir. İstifadəçi ilə veb server arasında "danışıq" HTTP protokolu üzərindən həyata keçirilir. Danışıq dedikdə sorğu və cavab nəzərdə tutulur. İstifadəçi, yaxud kliyent veb serverə sorğu göndərir, sonuncu isə öz növbəsində lazımi faylları tapıb brauzerə cavab göndərir:

Kliyent və veb server

Yuxarıdakı şəkildə tipik kliyent-server "danışığı" əks olunub. Veb serverdən kliyentin qurğusuna göndərilən məlumatlar sıxılmayıb.

Gzip proqram təminatı veb serverdən kliyentin qurğusuna göndərilən məlumatları sıxmağa imkan verir. Brauzer sıxılmış məlumat şəklində göndərilmiş cavabı qəbul edərkən onu açır və istifadəçiyə göstərir:

gzip utiliti

Yuxarıdakı şəkildən göründüyü kimi veb serverdən brauzerə ötürülən faylın real ölçüsü 2 MB-dır. Gzip utiliti faylı brauzerə göndərməzdən əvvəl onu sıxır və nəticədə brauzerə 2 MB deyil, 600 KB ölçüsündə məlumat göndərilir.

HTML, CSS, JavaScript kimi mətn formatlarının sıxılması onların ölçüsüsü 70-80% azalda bilər.

Gzip proqramı öz işində Deflate alqoritmindən istifadə edir.

GZIP sıxmanı brauzerin köməyilə yoxlamaq

Bütün müasir brauzerlər gzip texnologiyasını dəstəkləyirlər. Brauzer Accept-Encoding: gzip HTTP sorğu başlığı vasitəsilə bu barədə veb serverə məlumat verir. Proqramçı aləti HTTP sorğu və cavab başlıqlarını ətraflı incələməyə imkan verir. F12 klavişini sıxaraq həmin aləti açmaq mümkündür:

HTTP sorğu başlığı

Yuxarıdakı şəkildə Accept-Encoding: gzip, deflate, br, zstd HTTP sorğu başlığı veb serverə "deyir" ki, mən gzip sıxmanı dəstəkləyirəm.

Accept-Encoding: gzip HTTP başlığını qəbul edən veb server məlumatları brauzerə sıxılmış şəkildə göndərir. Həmçinin brauzerə Content-Encoding: gzip HTTP cavab başlığı göndərilir:

HTTP cavab başlığı

Əgər veb serverdə gzip sıxma aktiv edilməyibsə, onda məlumatlar olduğu kimi, yəni sıxılmamış şəkildə brauzerə göndərilir.

Gzip sıxmanın onlayn yoxlanılması

HTTP Compression xidməti veb saytda gzip sıxmanın aktiv edilməsini, həmçinin veb səhifənin real və sıxılmış ölçüsünü göstərir:

gzip sıxmanın onlayn yoxlanılması

Yuxarıdakı şəkildən göründüyü kimi https://ekurs.dev veb saytının real ölçüsü 29,7 KB, sıxılmış ölçüsü isə 6,5 KB-dır. Başa düşüldüyü kimi, gzip sıxma həm veb trafikin həcminin azalmasına, həm veb səhifənin sürətinin artmasına, həm də veb serverə düşən yükün azalmasına imkan verir.

Gzip proqram təminatının veb serverdə aktiv edilməsi

Hazırda bir çox hostinq provayderlərində gzip sıxma texnologiyasını asanlıqla aktivləşdirmək imkanı əlçatandır. Mən Estoniyanın "FASTVPS" şirkətinin VPS server həllindən istifadə edirəm. Onlar tərəfindən veb serveri idarə etmək üçün hazırlanmış "FastPanel" adlı proqram təminatında gzip sıxmanı aktivləşdirmək olduqca asandır:

FASTPANEL

Əgər sizin veb serverdə belə imkan əlçatan deyilsə, onda NGINX və Apache veb serverləri üçün aşağıdakı köməkdən istifadə edə bilərsiniz.

Gzip sıxma texnologiyasının NGINX veb serverində aktiv edilməsi

NGINX veb serverində müxtəlif mətn formatlarının sıxılmasını aktivləşdirmək üçün nginx.conf faylına aşağıdakı sətirləri yazmaq lazımdır:

server {
	...
	gzip on;
	gzip_types text/css text/xml application/javascript text/plain application/json image/svg+xml image/x-icon;
	gzip_comp_level 5;
}

Bundan sonra faylı yadda saxlayıb veb serveri yenidən yükləyin.

  • gzip on - gzip sıxmanı aktivləşdirir;
  • gzip_types - sıxılmalı olan fayl formatlarını müəyyənləşdirməyə imkan verir;
  • gzip_comp_level - məlumatların sıxılma səviyyəsini təyin etməyə imkan verir. 1-dən 10-dək sıxma səviyyəsi dəstəklənir. Prosessoru həddindən çox yükləməmək üçün bu göstəricinin qiymətini 5 təyin etmək tövsiyə edilir.

Gzip sıxma texnologiyasının Apache veb serverində aktiv edilməsi

Veb saytın əsas qovluğunda yerləşdirilən .htaccess faylına aşağıdakı sətirləri yazıb yadda saxlamaq lazımdır:

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

Əgər .htaccess faylına edilmiş dəyişiklikdən sonra brauzerə göndərilən məlumatların sıxılması aktiv deyilsə, onda hostinq provayderinin dəstək xidmətinə yazın.

Şərh yazmaq üçün hesabınıza daxil olun.

0
0