Bugün Brotli Nedir? Brotli Ne İşe Yarar? sorusuyla sunucudan tarayıcıya gönderilen HTML, JavaScript ve CSS gibi içerikleri sıkıştırmak için kullanılan bir site hızlandırma yöntemine göz atıyoruz.
Brotli Sıkıştırması Nedir?
2013 yılında piyasaya sürülen Brotli sıkıştırması (Brotli Compression), Google tarafından geliştirilen ve Gzip alternatifi olarak kullanılan bir kayıpsız veri sıkıştırma algoritmasıdır. İlk dönemlerinde yeterince tarayıcı desteği olmayan Brotli, bugün tüm web sitelerinin %37’si tarafından kullanılmaktadır (w3techs).
İsviçre Almancasında ‘küçük ekmek’ anlamına gelen Brotli’nin dayandığı mantık şudur: Hem web sunucusu hem de iletişim kurduğu tarayıcı ortak bir sıkıştırma algoritmasını anladığında, kablo üzerinden gönderilen veriler sıkıştırılabilmektedir. Web sitesini hızlandırmak isteyenlerin sevdiği ücretsiz yöntemlerden biri olan sıkıştırma sürecinde; verilerin boyutları küçülür ve daha hızlı hareket ederler. Böylece web siteniz tarayıcıya daha hızlı ulaşır.
Brotli Nasıl Tasarlandı?
Jyrki Alakuijala ve Zoltán Szabadka isimli iki Google çalışanı tarafından WOFF web yazı tipi aktarımlarının boyutunu azaltmak amacıyla 2013 yılında geliştirilen Brotli, aslında Zopfli’nin devamıydı. Ancak bu yeni format, Zopfli’ye göre %20–26 daha yüksek sıkıştırma oranları elde edilmesini sağlıyordu.
Tıpkı Zopfli gibi adını İsviçre unlu mamullerden alan yeni algoritma daha küçük sıkıştırılmış boyut, daha iyi alan kullanımı ve daha hızlı sayfa yüklemeleri sağladığından kısa sürede yaygın olarak kullanılmaya başlandı.
2015 yılında Google, HTTP için Brotli spesifikasyonunu yayınlamıştı. Sonrasında, tarayıcının, “Content-Encoding: br” başlığı göndererek Brotli sıkıştırmasını açabileceğini sunucuya nasıl bildireceğini belirtmesi gibi işlevlerine ek olarak, Google mühendisleri Brotli’de web içeriğini sıkıştırmayı daha da hızlandıran başka iyileştirmeler de yaptı. Dilerseniz Brotli repo gelişimini Github’da kontrol edebilirsiniz > Brotli repo evolution.
Brotli 2015’te Google Open Source tarafından duyurulduğunda, daha küçük sıkıştırılmış boyut, mobil kullanıcılara daha düşük veri aktarım ücretleri ve azaltılmış pil kullanımı gibi ek avantajlar sağlayacağından söz ediliyordu, bu formatın yakın gelecekte büyük tarayıcılar tarafından destekleneceği de öngörülmüştü. Brotli’nin şu anki tarayıcı uyumluluğu %95,8’dir. Chrome 5.0 sürümünden itibaren, Microsoft Edge 18’den itibaren, Firefox 68. sürümünden itibaren, Safari 12. sürümünden itibaren ve iOS Safari 12.1 sürümünden itibaren Brotli’yi desteklemektedir. Microsoft Internet Explorer’ın hiçbir sürümü Brotli’yi desteklememektedir.
Brotli Sıkıştırma Tekniğinin Faydaları Nelerdir?
Bir web sunucusunda Brotli’nin etkinleştirilmesi, verilerin sunulmadan önce sıkıştırılmasını sağladığından istek boyutunu ve gecikmeyi azaltmaya yarar. Brotli sıkıştırması ile %14 daha küçük JavaScript dosyaları, %21 daha küçük HTML dosyaları ve %17 daha küçük CSS dosyaları elde etmek mümkündür.
Bugün hızlı web içeriği sunmak için standart sıkıştırma algoritması haline gelmiş olan Brotli hem sunucudaki içeriği sıkıştırmada hem de tarayıcıda sıkıştırmayı açmada Gzip’ten daha hızlıdır. Bazı durumlarda ön uç dekompresyonu Gzip’ten %64’e kadar daha hızlıdır.
Sayfa hızını artırmak amacıyla kullanılan Gzip’e alternatif olarak geliştirilen Brotli, statik dosyalara ek olarak veri akışlarında da oldukça iyi sıkıştırma sağlamaktadır.
Brotli Nasıl Çalışır?

Tarayıcınıza bir URL yazarsanız, tarayıcınız sunucuyla girdiği iletişimde sunucuya içerik sıkıştırmasını açıp açamayacağı eğer açacaksa, hangi sıkıştırma algoritmalarını anlayabildiğini soracaktır. Eğer sıkıştırmayı aktifleştirdiyseniz ve sunucunuz tarayıcının sıkıştırma algoritmalarından birini biliyorsa, tüm verileri sıkıştırarak tarayıcıya gönderecektir.
Sıkıştırılmış bir dosya, orijinal web dosyasına kıyasla dosya boyutu (bayt) olarak çok daha küçük olduğundan, web sitesinin tam olarak yüklenmesi için daha az zamana ihtiyacı olacaktır.
Gzip ile Brotli’yi Karşılaştırma
Brotli ve Gzip, bir uygulamanın toplam paket boyutunu önemli ölçüde iyileştirebilen ve böylece performansı artıran sıkıştırma algoritmalarıdır.
Hemen hemen tüm web sunucularının ve içerik dağıtım ağlarının (CDN) desteklediği Gzip, LZ77 algoritmasına ve Huffman kodlamasına dayanan açık kaynaklı bir sıkıştırma tekniğidir. Linux ve Unix işletim sistemlerinde varsayılan olarak mevcuttur, çok amaçlı bir sıkıştırma kitaplığı olarak tasarlanmıştır ve bir başka sıkıştırma algoritması olan DEFLATE’e dayanmaktadır. Popülaritesi ve dosyaları küçültmede çok iyi olması nedeniyle, günümüzde farklı işletim sistemleriyle çalışan web sunucuları için hala yaygın olarak kullanılmaktadır. Jean-loup Gailly ve Mark Adler tarafından yazılmıştır. İlk beta sürümü web’in yaygın olarak kullanılmaya başlandığı 1992’de, ilk gerçek sürümü olan 1.0 ise 1993’ün başlarında yayınlanmıştır.
Brotli’nin Gzip alternatifi olarak öne çıkmasının nedeni JavaScript, HTML ve CSS gibi verilerde %15-20 daha küçük sıkıştırma oranlarına ulaşmasından kaynaklanır.
Bilindiği gibi web sayfanızın parçası olan her bir dosya, sunucunun tarayıcınıza gönderdiği farklı bir akıştır. Bir tarayıcıda bir web sayfası talep edildiğinde, sunucu birden çok veri akışı göndermeye başlar. Google, Brotli’yi tasarlarken akışları daha verimli bir şekilde sıkıştırmanın gerekliliğini anlamıştı. Bu da Brotli’nin, Gzip’e göre önemli bir avantajının olmasını; Brotli’nin en başından, akışları sıkıştırmak için tasarlanmasını sağladı. Gzip ise başlangıçta dosyaları sıkıştırmak için tasarlanmış ve web üzerinde çalışabilmesi için akışları sıkıştırmaya uyarlanmıştı.
Gzip gibi Brotli de LZ77 algoritmasına ve Huffman Coding’e dayanmakta, ama Gzip’ten daha iyi olmasını sağlayan context modeling ve statik sözlük gibi özelliklere sahip.
Gzip,1’den 9’a kadar sıkıştırma düzeylerini desteklerken, Brotli daha da fazlasını desteklemekte: 0’dan 11’e. Ancak, en yüksek düzeyler sayılan 10 ve 11, web içeriğinin teslimi için yavaş kalabilir. Bu nedenle, düzey 4 ila 7 arasında ayarlandığında, genellikle sıkıştırma ve hız arasındaki denge en iyi şekilde sağlanmış olur.
Çoğu durumda Brotli, dosyaları Gzip’ten daha küçük bir boyuta sıkıştırabilir, bu nedenle genellikle Gzip’e kıyasla daha iyi bir sıkıştırma yöntemidir.
Brotli Nasıl Kurulur?
Brotli’yi etkinleştirme adımları sitenizin nasıl yapılandırıldığına bağlı olarak değişebilmektedir. Genellikle birçok hosting sağlayıcısı, CDN ve ters proxy sunucusu, varsayılan olarak sıkıştırma özelliği ile sunucunuzu kolaylıkla yapılandırmanıza olanak tanır.
Brotli’yi kullanmak için sunucunuzun HTTPS’yi desteklemesi gerekir.
- Çoğu WordPress önbelleğe alma eklentisi, output sıkıştırmasını etkinleştirebileceğiniz bir bölüme sahiptir.
- Apache web sunucusunun en son sürümleri Brotli modülüyle birlikte gelmektedir. Etkinleştirmek için:
- sudo a2enmod brotli
- .htaccess dosyasına alttaki komut eklenmelidir:
<IfModule mod_brotli.c> AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/javascript </IfModule>
- Nginx’te Brotli’yi etkinleştirmek için Nginx’i kaynaktan oluşturmanız gerekir. İşlem, Brotli’yi Apache’de etkinleştirmekten biraz daha karmaşık olabilir. Google, engine x için Brotli modülü sağlamaktadır.
Dilerseniz, ziyaretçinizin kullandığı tarayıcıya bağlı olarak sunucunuzu Gzip ve Brotli arasında otomatik olarak geçiş yapacak şekilde de yapılandırabilirsiniz.
Web sitenizde şu anda herhangi bir sıkıştırmanın etkin olup olmadığını merak ediyorsanız, iki yöntem kullanabilirsiniz. Birincisi için bir web tarayıcısında sitenizi ziyaret edip sayfada sağ tıklayın. “İncele”yi açarak ağ etiketini bulabilirsiniz. Sayfayı yeniden yüklediğinizde listedeki ilk girişi bulup üzerine tıklamanız gerekir. Accept-encoding başlığına baktığınızda gzip veya br içerdiğini görüyorsanız sıkıştırma etkindir.

Bir web sitesinde sıkıştırmanın etkin olup olmadığını anlamanın ikinci yolu, Url’nizi girdiğinizde alan adınıza bağlanarak gerekli bilgileri alan ve web sitenizin barındırıldığı sunucuda Gzip veya Brotli’nin etkin olup olmadığını kontrol eden https://www.giftofspeed.com/gzip-test gibi sitelerdir. Bu şekilde, web sitenizin orijinal sürümünün dosya boyutu ve Gzip sıkıştırmasını kullanmaktan ne kadar fayda sağlayabileceği gibi bazı ek bilgiler de alabilirsiniz.
Özet
Uzun süredir web sunucuları tarafından sıkıştırılmış site içeriğini tarayıcıya teslim etmek için kullanılan GZIP’in tahtını sallayan yeni oyuncu Brotli; açık kaynaklı, kayıpsız bir veri sıkıştırma algoritmasıdır. 2013 yılında Google tarafından MIT lisansı altında geliştirilmiştir. Hız ve sıkıştırmada Gzip’ten daha iyi performans göstermekte ve çoğu tarayıcı tarafından desteklenmektedir.
Brotli Nedir? Brotli Ne İşe Yarar? sorusunun yanıtı, devrim niteliğinde bir sıçrama olmasa da bazı detayların hayatımızı ne kadar kolaylaştırdığının kanıtıdır.