Site Hızı 4.Bölüm – Gzip Compression

Google Page Speed ile sitenizi analiz ederken muhtemelen “Enable Compression” (sıkıştırmayı çalıştır) bildirisini göreceksiniz. Bunun anlamı kısaca, verilerin server tarafından sıkıştırılmamış (uncompressed) olarak kullanıcıya aktarılıyor olması. Büyük bir siteniz varsa gzip sıkıştırma (gzip compression) işlemini yapıp (70% – 80%´lik) oranda dosya boyutu küçültmesi sağlayabilir ve site açılım hızında kazanç elde edebilirsiniz.

Gzip Compression uygulamasını kullanmak için genel olarak 3 farklı çözüm vardır. Bunlardan en kolayı .htaccess dosyasına birkaç satır basit kod eklemektir.

1. .htaccess üzerinden gzip compression uygulaması

<IfModule mod_deflate.c>
<FilesMatch "\\.(js|css|html|xml)$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>

İlk satırda bulunan kodla server üzerinde mod_deflate.c modülü etkin olup olmadığı kontrol edilir, çünkü gzip compression uygulaması için gerekli bir modüldür. Hemen akabininde tüm .js, css, html ve xml uzantılı dosyalar sıkıştırılır. Tabiki farklı uzantılarda eklenebilir. Ancak jpg, gif veya png gibi grafik uzantılarında bunu yapmak pek mantıklı değil, çünkü bu uzantılar zaten sıkıştırılmış olarak veriliyor. Bu yöntemin bir dezavantajı var, mod_deflate modülü tüm hostlarda kurulu olmadığı için çalışmayabilir, ben host olarak hostgator kullanıyorum ve mod_deflate modülü kurulu. Modül mod_deflate Hostunda kurulu olmayan kullanıcılar 2. yöntemi uygulayabilirler.

2. PHP ile Gzip Compression

Bu yöntem de yapmamız gereken aşağıdaki kodu sıkıştırmak istediğimiz sayfanın ilk satırına eklemek olacak.

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

Bu yöntemin 2 dezavantajı var. Birinci dezavantajı sadece php-dosyalarında çalışıyor olması. Yani bu durumda dosya uzantısı .php olması gerekiyor (bunun önüne geçilebilir ama bu konuya girmicem). 2. dezavantaj, sıkıştırma yapmak istediğimiz tüm dosyalara bu kod tek tek girilmesi gerekiyor. Eğer dosya miktarı oldukça fazlaysa bu bizim için baya iş demektir. Bu nedenlerden dolayı öncelikle ilk yöntem denenmeli (.htaccess üzerinden gzip compression uygulaması), eğer hostunuzdan kaynaklanan nedenlerden dolayı çalışmayacak olursa php ile gzip compression yöntemini kullanabilirsiniz.

3. dosyalara ön sıkıştırma uygulaması

İlk iki yöntem de ufak bir sorun var, server yükünü biraz artırıyor. Aslında bu kadar trajik değildir, veri miktarı bu dezavantajı dengeler. Bazı durumlarda ön sıkıştırma yapmak hala faydalıdır. Bu uygulama özellikle büyük ve az değişiklik yapılan dosyalar için geçerlidir.

Eğer bu açıklamada aklınıza JQuery dosyası geliyorsa, kesinlikle doğru düşünüyorsunuz. jquery.js dosyası yaklaşık 80kb geliyor. Sıkıştırma işleminden sonra yaklaşık 25kb oluyor. Sıkıştırma işlemini öreneğin 7Zip programı ile yaptıktan sonra, sıkıştırılmış olan bu dosyayı ftp ile orijinal dosyanın bulunduğu klasöre atıyoruz.

WordPress de gzip Compression uygulaması

WordPress kullanıcıları da yukarıda anlatılan sıkıştırma yöntemlerini kullanabilirler. Bilindiği gibi wordpress de hemen hemen her konuda eklentiler var. WordPress geliştiricilerinden olan Sergej Müller´in programladığı wpcompressor eklentisi, Gzip Compression konusunda hayatımızı kolaylaştıracaktır. WPcompressor eklentisi yukarıda anlatılan yöntemlerden 2. olanı uygulamaktadır yani php ile sıkıştırma yöntemini, yalnız 1. yöntem kadar hızlı değil. Bu nedenden dolayı wordpress kullanıcılarıda öncelikle 1. yöntemi denemeli eğer host dan dolayı çalışmayacak olursa bu eklentiyi kurup php ile compression yöntemini kullanabilirsiniz.

Gzip Compression test etme

Yöntemlerden birini uyguladıktan sonra gzip compression işleminin çalışıp çalışmadığını test etmek için PHP Script´i kullanılabilirsiniz.

Sonuç: Web sayfalarını sıkıştırma kesinlikle işe yarıyor ve bunu küçük bir çaba ile gerçekleştirebilirsiniz. En hızlı ve kolay yöntemi .htaccess dosyası üzerinden gzip compression uygulamasıdır bu yönteme ek olarak ön sıkıştırma yöntemi ile destek verilebilir. Eğer host dan kaynaklanan nedenlerden dolayı çalışmayacak olursa php ile sıkıştırma yöntemini kullanabilirsiniz.

Benzer konular:

Password Reset
Please enter your e-mail address. You will receive a new password via e-mail.