İçindekiler
Brotli, sıkıştırma algoritmalarının gözdesi haline gelmiş, web performansını artırmada kıymetli bir rol oynayan bir teknoloji. Bu yazıda, Brotli’nin ne olduğunu, nasıl çalıştığını ve neden web dünyasında bu kadar büyük bir tesiri olduğunu keşfedeceğiz.
Brotli Nedir?
Brotli, bir sıkıştırma algoritmasıdır. Sıkıştırma süreci ise verilerin boyutunu azaltma işlemidir. Bilgileri sıkıştırarak daha küçük boyutlarda depolanabilir yahut iletilir hale getirir. Siteye gelen bir ziyaretçi olağan koşullarda çok daha yüksek bilgiyi indirmesi gerekirken brotli sayesinde sıkıştırılmış ve çok daha küçültülmüş boyutunu indirecektir. Brotli’nin bilhassa metin tabanlı bilgileri sıkıştırmak için tasarlandığını unutmamak değerlidir.
Brotli, Google mühendisleri trafaındna gereksinimleri karşılamak ismine geliştirilmiş kayıpsız bir bilgi sıkıştırma algoritmasıdır. LZ77 kayıpsız sıkıştırma algoritması, Huffman kodlaması ve 2. dereceden içerik modellerinin kombinasyonlarından oluşmuştur diyebiliriz. Brotlinin ana hedefi web sunucuları ve içerik dağıtım ağları (CDN) tarafından HTTP içeriğini sıkıştırmak ve internet sayfalarının çok daha süratli açılmasını sağlamak için kullanılır. En çok kullanılan bir öbür sıkıştırma algoritması olan Gzip‘e karşı oluşturulmuş ve genel prestijiyle tüm kıymetli web tarayıcılar tarafında da desteklenmektedir. Gzip’ten çok daha uygun sıkıştırma sağladığı için günümüzde epeyce popülerdir.
Brotli, çalışma prensibi olarak Huffman kodlaması ve entropi yöntemlerini kullanır. Bu sistemler, dataları sıkıştırırken daha sık karşılaşılan sembollerin daha kısa kodlarla temsil edilmesini sağlar. Sonuç olarak, datalar daha tesirli bir halde sıkıştırılır ve daha az yer kaplar. Brotli tıpkı vakitte blok sıkıştırma özelliğine sahiptir. Bu, bilgiyi küçük bloklara ayırarak sıkıştırma sürecini daha verimli hale getirir. Blok sıkıştırma, büyük belgelerin daha süratli işlenmesini sağlar.
Brotli’nin avantajları ortasında daha uygun sıkıştırma oranları, hızlı sıkıştırma ve açma işlemleri, veri transferi maliyetlerinin azalması ve web performansının artması bulunur. Bu nedenle, Brotli, web geliştiricileri için kıymetli bir araç haline gelmiştir.
Web tarayıcıları ve sunucuları, Brotli’yi desteklemeye başlamış ve bu da daha fazla web sitesinin bu teknolojiyi kullanmasını teşvik etmiştir. Sonuç olarak, Brotli’nin web dünyasındaki tesiri giderek büyümektedir. Genel prestijiyle baktığımızda %95 oranında tarayıcılar tarafından desteklenmektedir. Brotli, web sitelerinin suratını artırmak ve data transferini optimize etmek için kullanılır. Taşınabilir uygulamalar, API’ler ve daha fazlası da Brotli’yi kullanabilir.
Brotlinin ne olduğundan bahsetmişken biraz başka sıkıştırma algoritmalarından bahsetmek yararlı olabilir.
Sıkıştırma Algoritmaları Hakkında Temel Bilgiler
Sıkıştırma algoritmaları, dataların boyutunu azaltma süreci olarak tanımlanır ve günümüzün dijital dünyasında hayati bir rol oynar. Bu algoritmalar, dataları daha küçük boyutlarda depolamamıza yahut iletmemize yardımcı olur ve bilgi transferi, depolama ve sürece maliyetlerini azaltır. Temelde, sıkıştırma algoritmaları, tekrar eden desenleri tanımlayarak yahut dataları daha verimli bir halde kodlayarak dataların sıkıştırılmasını sağlar.
İki cins sıkıştırma algoritması usulü vardır:
1. Kayıpsız sıkıştırma
Kayıpsız sıkıştırma algoritmaları, dataları sıkıştırırken rastgele bir bilgi kaybına neden olmaz. Datalar sıkıştırılıp açıldığında, orjinal bilgilere tam olarak geri dönülür. Örnekler ortasında Run-Length Encoding (RLE) ve Huffman kodlaması bulunur.
2. Kayıplı sıkıştırma
Kayıplı sıkıştırma algoritmaları, dataları daha küçük boyutlarda saklamak yahut iletmek için birtakım bilgi kaybını kabul eder. Bu çeşit algoritmalar, bilhassa multimedya bilgilerinin sıkıştırılmasında yaygın olarak kullanılır. Örnekler ortasında JPEG (görüntü sıkıştırma) ve MP3 (ses sıkıştırma) bulunur.
Brotli Sıkıştırma Algoritması Nasıl Çalışır?
Brotli, çağdaş web dünyasının sürat ve bilgi transferi gereksinimlerini karşılamak maksadıyla geliştirilmiş güçlü bir sıkıştırma algoritmasıdır. Web sayfalarının daha süratli yüklenmesini ve data transferinin daha verimli olmasını sağlayarak web performansını büyük ölçüde artırır. Pekala, Brotli nasıl çalışır? İşte bu değerli sıkıştırma algoritmasının temel çalışma prensibine biraz daha yakından bakalım.
Huffman kodlaması ve entropi
Yazımızın girişinde Brotli sıkıştırma algoritmasının Huffman kodlaması ve entropi konseptlerine dayandığından bahsetmiştik. Bu mevzuyu etraflıca ele almak gerekirse Huffman kodlaması, tekrarlanan bilgi desenlerini tanımlayarak daha sık karşılaşılan sembolleri daha kısa kodlarla temsil etmeyi emeller. Bu, bilgi sıkıştırmasını sağlar zira daha sık kullanılan semboller daha az bit kullanır. Entropi ise bilginin karmaşıklığını söz eden bir kavramdır. Datanın ne kadar karmaşık olduğu, bilgiyi ne kadar uygun sıkıştırabileceğimizi tesirler. Brotli, bilgiyi sıkıştırırken bu entropi kavramını kullanarak, bilgiyi daha yeterli kodlayabilir ve daha küçük boyutlarda saklayabilir.
Bunun yanı sıra Brotli blok sıkıştırma ve metin sıkıştırma üzere iki farklı modda sıkıştırma özelliğine sahip.
Blok sıkıştırma ve metin sıkıştırma
Blok sıkıştırma: Bu modda, data belli boyutlarda bloklara ayrılır ve her blok başka farklı sıkıştırılır. Bu, büyük evrakların daha süratli işlenmesini sağlar ve süratli erişim için ülküdür.
Metin sıkıştırma: Bu modda, metin bilgileri özel olarak tasarlanmış bir sıkıştırma algoritması kullanılarak sıkıştırılır. Metin sıkıştırma, bilhassa web sayfalarının metin içeriği için tesirlidir ve daha yüksek sıkıştırma oranları sağlar.
Brotlinin ne olduğu, nasıl çalıştığı, hangi konseptleri etraflıca konuştuk, isterseniz gelin artık başka sıkıştırma algoritmalarından farklarına yakından bakalım.
Brotli’nin GZIP ve Öteki Sıkıştırma Algoritmalarına Karşı Avantajları
Web dünyasında sürat ve data transferi her zamankinden daha kritik hale geldi. Kullanıcılar, web sayfalarının süratli yüklenmesini beklerken, işletmeler de bilgi transferi ve depolama maliyetlerini minimize etmek istiyor. İşte bu noktada Brotli sıkıştırma algoritması devreye giriyor. Brotli, çeşitli avantajlarıyla web performansını ve bilgi idaresini kıymetli ölçüde güzelleştirir.
Daha âlâ sıkıştırma oranları
Brotli’nin tahminen de en dikkat cazibeli avantajlarından biri, daha uygun sıkıştırma oranları sunmasıdır. Yani, birebir bilgiyi başka sıkıştırma algoritmalarına nazaran daha küçük boyutlarda saklayabilir yahut iletebilirsiniz. Bu, bilhassa yüksek hacimli bilgi transferi gerektiren web siteleri ve uygulamalar için büyük bir avantajdır.
Daha âlâ sıkıştırma oranları, web sayfalarının daha süratli yüklenmesini sağlar. Zira daha küçük bilgi boyutları, bilgilerin daha süratli indirilmesi manasına gelir. Ayrıyeten, bu avantaj, düşük bant genişliği olan temaslar üzerinde web sitelerinin daha düzgün performans göstermesine de katkı sağlar.
Squash Benchmarks’ın çok hoş bir araştırma yapmış, bu araştırma özelinde genel itibariyle özeti şöyle:
- Brotli, her sıkıştırma seviyesinde daha düzgün bir sıkıştırma oranına sahip. (yani daha küçük sıkıştırılmış evraklar üretir).
- GZIP birden fazla vakit Brotli’yi sürat açısından yense de, sıkıştırdığınız düzey, göreceğiniz sonuçlara tesir eder.
Diğer tekniklerle olan kıyaslamalarına bakalım:
- Gzip: Gzip, web sunucuları ve tarayıcılar ortasında yaygın olarak kullanılan bir sıkıştırma algoritmasıdır. Lakin Brotli, Gzip’e nazaran daha güzel sıkıştırma oranları sunar. Bilhassa metin tabanlı bilgilerde (HTML, CSS, JavaScript gibi) Brotli, Gzip’e nazaran daha tesirlidir.
- Deflate: Deflate, sıkıştırma için hayli yaygın bir algoritmadır ve Gzip’in temelini oluşturan bir metottur. Brotli, Deflate’e nazaran daha düzgün sıkıştırma oranları sunar ve daha süratli süreçler gerçekleştirir.
- Zstandard (Zstd): Zstandard, yüksek performanslı bir sıkıştırma algoritmasıdır ve Brotli ile misal sıkıştırma oranlarına sahip olabilir. Lakin Brotli, metin dataları için bilhassa daha tesirlidir ve web sayfalarının süratli yüklenmesine katkıda bulunabilir.
- LZ77 ve LZ78 Algoritmaları: Brotli, LZ77 ve LZ78 algoritmalarını temel alır ve bu algoritmaların optimize edilmiş bir versiyonunu sunar. Bu, Brotli’nin datayı daha yeterli sıkıştırmasına yardımcı olur.
- JPEG ve MP3: Brotli, multimedya bilgileri için kullanılan özel sıkıştırma algoritmalarına nazaran daha az data tasarrufu sağlar. Bu nedenle, JPEG (görüntü sıkıştırma) ve MP3 (ses sıkıştırma) üzere multimedya belgeleri için özel algoritmalar tercih edilir.
Brotli’nin öteki sıkıştırma algoritmalarına nazaran %20 ila %30 ortasında daha âlâ sıkıştırma oranları sağladığı için web performansını ve data transferini değerli ölçüde artırabilir. Lakin kesin sıkıştırma oranları, kullanılan datanın tipine, boyutuna ve içeriğine bağlı olarak değişiklik gösterebilir.
Brotli sürümlerini ve iyileşmelerini Github’da denetim edebilirsiniz.
Hızlı sıkıştırma ve açma işlemleri
Brotli, sıkıştırma ve açma süreçlerini son derece süratli bir halde gerçekleştirir. Bu, web sunucularının ve tarayıcıların dataları süratli bir biçimde sıkıştırmasını ve açmasını sağlar. Kullanıcılar, web sayfalarını süratli bir biçimde görüntüleyebilirken, sunucular da bilgi sıkıştırma ve açma süreçlerinde yüksek performans elde edebilirler.
Hızlı süreçler, bilhassa canlı bilgi transferi gerektiren uygulamalarda, görüntü akışlarında ve oyun sunucularında değerlidir. Brotli’nin süratli süreçleri, bu çeşit uygulamaların daha düşük gecikme müddetleri ve daha süratli reaksiyon mühletleri sunmasına yardımcı olur.
Veri transferi ve depolama tasarrufu
Brotli, data transferi ve depolama maliyetlerini değerli ölçüde azaltır. Daha küçük data boyutları, bilgilerin süratli bir biçimde iletilmesini ve daha az bant genişliği kullanılmasını sağlar. Bu, web siteleri ve uygulamaları için hem maliyet tasarrufu hem de daha güzel performans manasına gelir.
Ayrıca, Brotli, bilgi merkezlerinde ve bulut tabanlı hizmetlerde de değerli bir rol oynar. Daha az depolama alanı gerektirir, bu da bilgi merkezi maliyetlerini düşürür ve yeşil bilgi merkezi teşebbüslerine katkıda bulunur.
Brotli Lullanılıp Kullanılmadığını Nasıl Test Ederim?
Sitenizde brotli sıkıştırma sisteminin var olup olmadığını denetim etmenin birden fazla yolu bulunuyor. Ben burada sizlere iki farklı formülünü gösteriyor olacağım.
İlk olarak DevTools aracılıyla denetimlerimizi sağlayabiliriz.
İlgili sayfaya girdiğinizde “incele” kısmına girdikten sonra DevTools açılacak.
Sağ tarafta açılacak bir pencerede üst kısımda “network” sekmesini göreceksiniz.
Network ekranına girdiğimizde sol taraftaki istek listesinden sayfanızın URL’i seçmeniz gerekiyor ardından “Headers” menüsü altında “Content-Encoding: br” yazıyorsa sitenizde brotli sıkıştırma metodu kullanılıyor demektir.
Diğer bir yöntem ise üçüncü parti tool kullanarak testlerimizi gerçekleştirmektir. https://www.giftofspeed.com/gzip-test/ adresine girip, URL kısmına test etmek istediğiniz adresi yazarak sitenin brotli olup olmadığını denetim edebilirsiniz.
Aşağıdaki ekranda kriko.blog adresinin sıkıştırma yolunun testi yapılmıştır. Şu an için gzip kullandığını, ne kadar sıkıştırma yapıldığını vs. görebilirsiniz.
Brotli’yi Nasıl Aktifleştirebilirim/Kurabilirim?
Brotli’yi kurmak ve aktifleştirmek, kullandığınız web sunucusuna bağlı olarak değişebilir. İşte birtakım tanınan web sunucuları için Brotli’nin nasıl kurulacağına dair genel yönergeler:
Apache Web Sunucusu için Brotli Suramı:
Apache web sunucusunda Brotli’yi aktifleştirmek için aşağıdaki adımları izleyebilirsiniz:
mod_brotli
eklentisini aktifleştirin. Apache’in yapılandırma belgesinde (genellikle httpd.conf
yahut apache2.conf
olarak adlandırılır) aşağıdaki satırı ekleyin:
LoadModule brotli_module modules/mod_brotli.so
mod_brotli
‘yi aktifleştirdikten sonra, .htaccess belgenizde Brotli sıkıştırma kurallarını yapılandırabilirsiniz. Örnek bir .htaccess belgesi aşağıdaki üzere görünebilir:
<IfModule mod_brotli.c>
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript application/json application/xml
</IfModule>
Nginx Web Sunucusu için Brotli Suramı:
Nginx web sunucusunda Brotli’yi aktifleştirmek için aşağıdaki adımları izleyebilirsiniz:
Nginx yapılandırma evrakınızı düzenleyin (genellikle /etc/nginx/nginx.conf
yahut /etc/nginx/sites-available/default
üzere bir dosyadır) ve aşağıdaki satırları ekleyin:
gzip on;
gzip_static on;
gzip_comp_level 6;
gzip_min_length 1000;
gzip_types text/plain text/css text/xml text/javascript application/javascript application/x-javascript application/json application/xml;
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css text/xml text/javascript application/javascript application/x-javascript application/json application/xml;
Nginx’i tekrar başlatın:
sudo service nginx restart
Sonuç olarak, Brotli sıkıştırma algoritması, web dünyasının sürat ve data idaresi gereksinimlerini karşılamada kritik bir rol oynuyor. Web sayfalarının daha süratli yüklenmesi, data transferinin daha verimli olması ve maliyetlerin azalması için Brotli’yi kullanmak hem web geliştiricileri hem de kullanıcılar için büyük avantajlar sağlıyor. Bu nedenle, Brotli’yi kullanma ve yapılandırma konusunda dikkatli ve şuurlu olmak değerlidir.
Yeni Core Web Vitals MetriğiInteraction To Next Paint ile ilgili bilmeniz gerekenleri sizler için derledik. Keyifli okumalar!