Bildiğiniz üzere ülkemizdeki internet çok pahalı ve bu yüzden de birçok kişi sınırlı ADSL kullanmak zorunda kalıyor; 4GBcık. Peki, sınırlı ADSL kullanıcıları için ne yapabiliriz? GZip'li veri transveri. GZip ile web sayfaları sunucuda %70 - %80 oranında sıkıştırılır, sıkıştırılmış olarak göderilir, istimcede açılır.
Bu yöntemle internet trafiğini hem ziyaretçi için hem de genel ağı kullananlar için rahatılmış olunur, web sitesi daha hızlı download edilir, 4GB sınırlı internet kullanıcılarının kotaları boşa harcanmaz, bandwidth'den tasarruf edilir... Tabii yan etkileri de var ama çok da önemli olduklarını düşünmüyorum; sunucunun ve istemcinin işlemcileri biraz daha fazla çalıştırcak.
GZip'den yararlanmanın birkaç yöntemi var ama en kısa ve kolay olanı PHP'nin ob_start fonksiyonunu kullanmak
|
|
Peki tüm tarayıcılar GZip'i destekliyor mu? Evet, hem de uzun yıllardır.
Web sitenizde çalışıp çalışmadığını anlamak için sayfanızı gzip testinden geçirebilirsiniz. Türkçe Wikipedia da GZip'i kullanıyor, ana sayfanın gerçek boyutu 73 KB, gzip'lenerek ağadan gelen boyutu ise sadece 17 KB, yani %76,71'lik bir sıkıştırma sağlanmış. Diğer bir kontrol etme yöntemi ise Firefox'ta ana menüden Araçlar > Sayfa Bilgisi'de Boyut kısmına bakmak, buradaki boyut ağdan gelen boyut oluyor.
Forum (phpbb) sayfamda gzip'i aktifleştirdim ve gözle görülür bariz bir "hızlanma" var.
önceki yazı Sizi CSS3 İle Tanıştıracak 5 Teknik |
önemli bir yöntem ve güzel bir makale. Ancak dediğiniz gibi yan etkileri de var. yani bu sizin sorun yaratmayacağınızı düşünmemenize bağlı değil aslında. eğer büyük ve çok ziyaretçisi olan bir sitede bunu seçerseniz, sunucu kaynaklarını bir anda tüketmiş olmanız mümkündür. ufak ve belki orta çapta projeler için kullanışlı olacaktır.
peki wiki gibi büyük ve çok ziyaretçi çeken sistemler hangi cürretle kullanıyorlar bunu? çünkü bunun gibi portallar bizim kullandığımız sistemler kullanmazlar. genellikle kendi ürettikleri işletim sistemi ve sunucu yazılımı ile kurdukları sunucu tarlalarıyla binecek yük bölüştürülür. yada bazen linux yazılımları ile yine sunucu tarlası mantığıyla yapılacak işler bir çok makinaya bölüştürülür.
70 kb lik bir sayfayi 1000 istemci istemis olsa , 70 mb trafik akmasi demek ,
diger sekilde 17 mb akmasi demek
arti cache felan muhabbetleri ile de bir kez cache atildi mi ? sonrasinda cache den gonderiyor olabilir. bu da cok fazla hiz kazandirir diye dusunuyorum.
Asp.net ile aynı olayı gerçekleştirebiliyoruz. Örnek kod burada var.
klasik asp'de de kullanılıyor. Şu adreste de klasik asp'nin gzip kullanımını görebilirsiniz.
@nilux avatarlarımız pişti olmuş, epey bi düşündüm senin yazdığın mesaj üzerinde. Ben bunu nasıl hangi ara yazdım gibisinden :))
Olumsuz yönleride var demişsin bunlar nedir onlarıda belirtirmisin.
benozgur
Olumsuz yönleride var demişsin bunlar nedir onlarıda belirtirmisin.demiş.
sanırım atlamışsın, yazımda
sunucunun ve istemcinin işlemcileri biraz daha fazla çalışacak.demiştim.
gerçekten güzel bir sistem.. kullandım ve başarılı olduğunu gördüm.. işlemciye fazla yük biniyor evet ama.. benim kullandığım server c2duo 2,6
günlük tekilde 7-8 bin arası.. bu güne kadar bir sıkıntı yaşamadım açıkcası..
yani orta halden hallice makinelerde kullanılabilinir :) diye düşünüyorum..
@lazaroni pi$ti degilde , ben avatar yuklemey calistim , 50x50 felan bi jpg ama yuklemedi , yahu dedim bu lazaroni nasil yuklemis , diye deneme yapiyordum :)
degistircem insallah
kotalı kullanicilari dusunerek gzip'i aktif hale getirme fikri ilgincmis :)
siteler icin de iyi , internet icinde iyi ,
siteler kullandiklari bandwith e gore para veriyorlar
dolayisi ile ben kendi yaptigim bi site de test ettim , 10 kb dustu 3kb'a
dusunsene 100 gb bant genisligine ben 100 usd odeyeceksem simdei 30 gb a 30 usd odeyecegim gibi bi mana cikiyor , ( rakamlar atmasyondur )
sayfaları sıkıştırılmış olarak cachelemek, sunucu yükünü de azaltacaktır. ama her sayfanın cookie ile belirlenen değişken içeriği varsa bu da problemli olabilir. o zaman sadece php kodunu compile edip saklamak gerekir, xhtml olarak değil.
Web sunucusu olarak Apache 2 kullananlar aynı işlevi sunucu düzeyinde yaparak çok daha yüksek performans sağlayabilirler. Sıkıştırma işlevini php'ye yaptırdığınızda o dosya her çağrıldığında yeni bir gzip çağrısı yapılıyor. Bu da sistem kaynaklarını hızla tüketiyor.
.
.
Bunun yerine Apache 2'nin mod_deflate modülünü kurup, php.ini içinde bu modülü tanıtırsanız kodunuzdan bağımsız olarak tüm içeriğiniz sıkıştırılmış olur, bant genişliğinden tasarruf edersiniz. Gelelim eksilere; sıkıştırma kullanmak (mod_deflate / php fark etmez) hem sunucuda hem de istemci'de daha çok işlemci gücü gerektirir, çünü "unzip" işlemi yapılır. Ancak günümüz bilgisayarları için (özellikle istemci tarafında) bu pek bir sorun teşkil etmez.
.
.
Eğer hala Apache 1.x kullanıyorsanız mod_deflate yerine mod_gzip kullanabilirsiniz.
evet doğru.. mod_deflate te aynı görevi yapıyor.. ama onda biraz ince detay ayarları yapmak lazm.. çok zor değil zaten tutoriallerde mecvcut.. :)
ayrıca
http://www.bildirgec.org is gzippedOriginal Size: 52 KB
Gzipped Size: 12 KB
Data Savings: 76.92%
bir saniye yaa, yanılmıyorsam ben bu yazıyı yazdığımda Bildirgeç gzip'li değildi?!
Yanlış anlamıyorum, öyle değil mi?
Ağır dosyaları gzip ile sıkıştırıp servera yükleyeceğiz. ardından o dosyası çağıran sayfanın en üstüne ekleyeceğiz.. hepsi bu?
@ducky, sadece verdiğim kodu sayfanın en başına koyacaksın, gerisini o halledecek.
PHP'yi yeni öğreniyorum. Bunu da bir kenara not ettim.
Tuttum bunu ( bir de bu yazıyı tutanlar kısmına girebilmeyi becerebilseydim... )
pillinetwork sitelerine yorum ekleyebilmek ve daha fazlası için, üye olun ya da giriş yapın.
Nokta ve pilli ortak yapımı olan kodaman.org hep birlikte içerik üretip gelirini yazarları ile paylaştığımız kolektif bir kod yazarları blogudur. Siz de katılabilirsiniz.