Gzip Nedir?

Gzip Nedir?

Veri sıkıştırma aracı olarak kullanılan gzip, Unix tarafından yazılmış program olan compress’e güçlü bir alternatif geliştirmek için çalışmalar yapan Jean-Loup Gailly ve Mark Adler tarafından geliştirilmiştir.

İşlevleri ve davranışları uyarlanabilir Lempel-Ziv algoritmasını kullanarak dosya sıkıştırmayı sağlayan POSIX standardında tanımlanmış bir teknolojidir. Üstlenen ekibin başarılı çalışmalar yaptığı ve şu an en yaygın kullanılan sıkıştırma yöntemi olduğunu belirtmeliyiz. Siteniz için aşağıdaki kısımdan test edebilirsiniz.

Gzip teknolojisi sitenizde %80’e varan tasarruf sağlamaktadır.

Sitenizde GZIP’i Test Edin

Gzip nasıl çalışır?

Gzip, ‘GNU ZIP‘in kısaltmasıdır ve veri sıkıştırma yöntemi LZ77’nin (Lemprl-Ziv 77) bir çeşidi olan özgürce kullanılabilen deflate algoritmasına ve Huffman kodlaması temeline dayanır. Bu teknikleri kullanarak, gzip dosyaları yinelenen veri dizelerini tarar. Program bu yinelenen dizilerle karşılaşırsa, bunları ilk görünen dizeye bir bağlantıyla değiştirir. Bu dizilerin uzunluğu genellikle 32.000 baytla sınırlıdır. Bir karakter dizisi önceki 32.000 baytta görünmüyorsa, .gz sonunu alan gzip dosyasında (sıkıştırılmadan) saklanır. Prosedür tek tek dosyalarla sınırlıdır, bu nedenle paketleme programı tar’ın .tar , .gz ve .tgz sonlarıyla sözde tarball arşivleri oluşturması gerekir. İşin teknik ve hikaye kısmı işin aslı bu kadar. Daha da fazla anlatıp uzatmaya gerek. Şimdi sizin sunucunuzda nasıl etkinleştirileceğini ve sitenizde yapmanız gereken ayarlardan bahsedeceğiz.

Apache web projeniz için gzip sıkıştırmasını nasıl kullanırsınız

Web sunucuları genellikle, etkinleştirilmesi gereken bir modül biçiminde pratik sıkıştırma sürecini sunar . Günümüzde, birçok web barındırma sağlayıcısı bu özelliği paylaşmaktadır, ancak geçmişte durum böyle değildi. Bunun nedeni muhtemelen sıkıştırma sürecinin ek işlemci gücü gerektirmesinden kaynaklıydı. Gzip’in sunucunuz tarafından yetkilendirilip yetkilendirilmediğinden emin değilseniz, sunucu yöneticinizle doğrudan iletişime geçebilir veya alternatif olarak manuel bir sorgu yapabilirsiniz. Örneğin, bir Apache web sunucusunda, basit bir phpinfo() çıktısı kullanarak sunucu modül ayarlarını kontrol edin. HTTP_ACCEPT_ENCODING bilgisi, hangi sıkıştırma yönteminin seçildiğini söyler.

Eğer sunucunuzda kurulu bir gzip mevcutsa, sıkıştırma yardımcısını herhangi bir amaçla kullanmak için birkaç seçeneğiniz vardır.

.htaccess dosyasında Gzip sıkıştırmasını etkinleştirme

Tüm sitenizde (bunlar geçerli dizine ve tüm alt dizinlere uygulanır) gerçekleştirmek ve web sunucunuzu gerçek zamanlı olarak yapılandırmak için bir .htaccess dosyası içerisine bir kod ekleyerek kullanabilirsiniz. .Htaccess dosyası genellikle kök dizinde bulunur ve yapılandırma dosyasının siteye ulaşan her istekte otomatik olarak okunmasını mümkün kılar. Ancak bazı web barındırma sağlayıcılarında .htaccess dosyası farklı bir klasörde saklanır, gizlenir veya erişime kapalı olabilir. Bu durumda yapmanız gereken sahip olduğunuz tek seçenek barındırıcıyla iletişime geçip erişim istemektir. Yapılandırmaları gerçekleştirebiliyorsanız, .htaccess dosyasına aşağıdaki kodu ekleyerek gzip sıkıştırmayı ( mod_gzip ) veya deflate algoritmasını ( mod_deflate ) açın :

<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
<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>

PHP aracılığıyla gzip sıkıştırmasını etkinleştirin

Basit bir PHP komutu kullanarak sıkıştırma işlemini sitenizde etkinleştirmeni mümkündür. Ancak zahmetli bir sorun var o da: kodun her PHP belgesi için ayrı ayrı girilmesi gerektiğidir. Bu nedenle, bu seçeneği yalnızca .htaccess dosyasını düzenlemek için gerekli haklara sahip olmadığınız sunucularda kullanmalısınız. Her satırın başına yerleştirmeniz gereken kod satırı şu şekildedir:

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

WordPress eklentisi aracılığıyla gzip’i uygulayın

Bu iki manuel çözüme ek olarak, kurulumu yalnızca asgari çaba gerektiren bir seçeneğimiz de mevcut: kullandığınız içerik yönetim sistemi için bir eklenti kullanarak gzip sıkıştırmasını etkinleştirebilirsiniz. Birkaç dakika içinde yerleştirebileceğiniz ve ihtiyaçlarınıza göre uyarlayabileceğiniz bu tür yararlı eklentiler, öncelikle PHP tabanlı WordPress gibi CMS’ler için sitenizin hızlanmasına fayda sağlar. Aşağıdaki liste, WordPress siteniz için en popüler üç eklentiyi içerir:

  • W3 Total Cache : WordPress eklentisi W3 TotalCache, web sitesi performansını on kat artırmayı vaat ettiğini söylemeliyiz. Çeşitli önbelleğe alma mekanizmalarına ve özel mobil desteğe ek olarak, SEO ve kullanılabilirlik paketi ayrıca gzip sıkıştırmayı etkinleştirme seçeneklerini de içeren bir çok ayar yapmanızı sağlayan bir eklentidir.
  • GZIP sıkıştırmasını kontrol edin ve etkinleştirin : En yaygın CMS WordPress için de geliştirilen bu eklenti, projeniz için gzip sıkıştırmasının etkinleştirilip etkinleştirilmediğini kontrol etmenizi sağlayan eklentidir. GZIP Sıkıştırma kapalıysa, bu eklenti kurulumda size yardımcı olacaktır.

Joomla! kullanıyorsanız web sitenizde sıkıştırma işlevi doğrudan gelmektedir.

gzip

NGINX web sunucunuzda gzip nasıl etkinleştirilir

Sitenizin içeriğini ziyaretçilerinize bir NGINX web sunucusu kullanarak teslim ettiğinizde, projenizin yükleme süresini iyileştirmek için gzip işlemini kullanma olanağınız da bulunmaktadır. Bunu yapmak için, yalnızca ngx_http_gzip_module modülünü yapılandırmanız gerekir. Varsayılan olarak sıkıştırma hizmetini etkinleştirmek veya devre dışı bırakmak için kullanılan ‘gzip’ yönergeleri kapalıdır. Bu ayarı değiştirmek için, nginx.conf dosyasını açın ve CTRL + F ile ‘gzip’ yönergesini arayın. Ardından, ‘gzip off’u ‘gzip on’ olarak değiştirin. Aşağıdaki tablo, NGINX gzip sıkıştırmasını yapılandırmak için diğer yönergelerin anlamını ve olanaklarını gösterir:

DirektifSözdizimiStandart ayarTanım
gzip_tamponlarıgzip_buffers – sayı ve boyut;gzip_tamponları 32 4k, 16 8k;Sıkıştırma işlemi için tampon numarasını ve boyutunu tanımlar
gzip_comp_seviyesigzip_comp_level – sıkıştırma oranı;gzip_comp_level 1;Sıkıştırma oranını belirtir; olası değerler: 1–9
gzip_min_uzunluğugzip_min_length – minimum uzunluk;gzip_min_length 20;Paket dosyasının minimum uzunluğunu bayt cinsinden belirtir
gzip_http_sürümügzip_http_version – sürüm numarası;gzip_http_sürüm 1.1;Bir isteğin sıkıştırılmış bir yanıtla yanıtlanması gereken HTTP sürümünü belirtir
gzip_türlerigzip_types – içerik türü;gzip_types metin/html;Sıkıştırmanın hangi içerik türlerine uygulanacağını düzenler (ayrıca şunlar da mümkündür: CSS, JSON, XML, …)

GZIP ve alternatifleri arasında farklar

Aşağıdaki tabloda gzip’in başlıca alternatifleri arasındaki avantaj ve dezavantajlara değindik.

YöntemAvantajlarDezavantajlar
gzip– Yaygın kullanım ve geniş uyumluluk
– Hızlı sıkıştırma ve açma
– Makul sıkıştırma oranı
– Düşük bellek kullanımı
– Bazı modern algoritmalara göre daha düşük sıkıştırma oranı
bzip2– Gzip’ten daha iyi sıkıştırma oranı
– Büyük dosyalarda etkili
– Gzip’ten daha yavaş
– Daha fazla CPU ve bellek kullanımı
xz– Çok yüksek sıkıştırma oranı
– Büyük dosyalar için ideal
– Sıkıştırma ve açma işlemleri yavaş
– Yüksek bellek kullanımı
lzma– xz’ye benzer yüksek sıkıştırma oranı
– xz’den biraz daha hızlı
– Yine de gzip’ten yavaş
– Yüksek CPU kullanımı
zstd– Hızlı sıkıştırma ve açma
– İyi sıkıştırma oranı
– Düşük bellek kullanımı
– Çok büyük dosyalarda gzip kadar etkili değil
lz4– Çok hızlı sıkıştırma ve açma
– Düşük CPU ve bellek kullanımı
– Sıkıştırma oranı diğerlerine göre düşük

GZIP’i test edin

Gzıp’i test etmek için Gzıp Test Aracı kısmından site adresinizi girerek gerçekleştirebilirsiniz.

Bilgi

Sitenizde gzip sıkıştırma ile hızlandırma bir noktaya kadar oldukça fazla etkilidir. Fakat; iyi bir sunucu da oldukça önemlidir. İyi bir TTFB değeri için hosting firmalarını hız değerlerine göre listeledik.

Tahir Dinç
Tahir Dinç

1999 yılında ilk çalışmalarıma başladım, 2004 yılında ODP editörü oldum. Günümüzde bir çok büyük firmaya SEO ve Google Ads hizmetleri sağlıyorum. SEO çalışması benim için işten daha fazlası diyebilirim. Türk SEM Blog sayfasında dijital pazarlama ile ilgili önemli ve faydalı bilgileri sizlerle paylaşıyoruz.

Leave a Reply

Your email address will not be published.Required fields are marked *