Brotli, Google tarafından geliştirilen yeni bir sıkıştırma algoritmasıdır. Daha küçük sıkıştırma yanıt boyutu, daha iyi alan kullanımı ve daha hızlı sayfa yüklemesi sağlar. Birçok durumda, Brotli gzip'ten daha iyi performans gösterir. Avantajlar: CSS, html, js gibi tipik web varlıkları için Brotli, gzip'ten %17-25 daha iyi performans gösterir. Brotli -gzip-9'a kıyasla yoğunluk: html (çok dilli korpus): js'nin %25'ini tasarruf et (Alexa'nın en yüksek 10k'sı): küçülen js'nin %17'sini (Alexa'nın ilk 10k'sı): CSS'nin %17'sini tasarruf et (Alexa'nın ilk 10k'sı): %20 tasarruf.
Brotli algoritmasına giriş
Brotli, ilk olarak 2015 yılında web fontlarının çevrimdışı sıkıştırılması için piyasaya sürülmüştür. Google yazılım mühendisleri, Eylül 2015'te HTTP sıkıştırmasına özel odaklanarak geliştirilmiş bir Brotli sürümünü yayımladı. Kodlayıcı, sıkıştırma oranını iyileştirmek için kısmen yeniden yazıldı, hem kodlayıcı hem de dekoder hız için artırıldı ve akış API'si daha fazla sıkıştırma kalitesi seviyesi eklenerek geliştirildi. Yeni sürüm ayrıca platformlar arasında performans iyileştirmeleri ve kod çözme için gereken belleği azalttığını gösteriyor.
Yaygın genel amaçlı sıkıştırma algoritmalarının aksine, Brotli önceden tanımlanmış 120 kilobaytlık bir sözlük kullanır. Sözlük, geniş bir metin ve HTML belge korpusundan 13.000'den fazla yaygın kullanılan kelime, ifade ve diğer alt dizileri içerir. Önceden tanımlanmış algoritmalar, daha küçük dosyaların sıkıştırma yoğunluğunu artırabilir.
Metin dosyalarını sıkıştırmak için deflate yerine Brotli kullanmak genellikle sıkıştırma yoğunluğunu %20 artırırken, sıkıştırma ve dekompresyon hızı yaklaşık olarak aynıdır. Brotli kullanılarak akış sıkıştırma için içerik kodlama tipinin "br" kullanılması önerilmiştir.
Brotli vs. Gzip
Sıkıştırma algoritmalarını değerlendirirken, iki göstergeye odaklanırız: sıkıştırma oranı ve sıkıştırma hızı. Yukarıdaki şekilde görebileceğiniz gibi, gzip'in 9 sıkıştırma seviyesinden hangisi kullanılırsa kullanılsın, sıkıştırma oranı brotli'den daha düşüktür (gzip'e kıyasla 10'a kadar da yapılandırılabilir) ve sıkıştırma hızı da daha yavaştır.
Brotli Avantajı: Brotli, css, html, js gibi tipik web varlıkları için gzip'ten %17-25 daha iyi performans gösterir. Brotli -gzip-9 ile karşılaştırıldığında yoğunluk: html (çok dilli korpus): js'nin %25'ini tasarruf et (Alexa'nın en yüksek 10k'sı): küçülen js'nin %17'sini tasarruf et (Alexa'nın ilk 10k sayısı): CSS'nin %17'sini kaydet (Alexa'nın ilk 10k dosyası): %20 tasarruf
asp.net çekirdek Brotli'yi etkinleştirir
Kabul Etme başlığı değeri
Kod yapılandırması
Aşağıdaki kod, varsayılan MIME tipi ve sıkıştırma sağlayıcıları (Brotli ve Gzip) için duyarlı sıkıştırma ara yazılımının nasıl etkinleştirileceğini gösterir:
Not:
- uygulama. UseResponseCompression uygulamaya dahil edilmelidir. Aramadan önce Mvc kullanın.
- Fiddler, Firebug veya Postman gibi araçları kullanarak Accept-Encoding isteği başlığını kurun ve yanıt başlığını, boyutunu ve gövdesini inceleyin.
Varsayılan olarak, Brotli sıkıştırma sağlayıcısı, Gzip sıkıştırma sağlayıcısıyla birlikte sıkıştırma sağlayıcısının dizisine eklenir. İstemci Brotli sıkıştırılmış veri formatını desteklediğinde, sıkıştırma varsayılan olarak Brotli sıkıştırmasına geçer. İstemci Brotli'yi desteklemiyorsa, istemci Gzip sıkıştırmasını desteklediğinde sıkıştırma varsayılan olarak Gzip'e geçer.
BR sıkıştırma testi
Fiddler paket yakalama aracını açın ve web sitemizin adresine erişmek için bir tarayıcı kullandığınızda aşağıdakileri görebilirsiniz:
İstek başlığı: Accept-Encoding: gzip, deflate, br
Yanıt başlığı: İçerik Kodlama: br
Sıkıştırma yapıldığında, Content-Length başlığı kaldırılır çünkü yanıt sıkıştırıldığında gövde içeriği değişir.
Sıkıştırma yapıldığında, gövde içeriği değiştiği ve hash artık geçerli olmadığı için Content-MD5 başlığı kaldırılır.
asp.net çekirdek https fonksiyonunu etkinleştirdiğinde, Brotli html ve json sıkıştırmasında etkili olmaz, ancak js ve css'i sıkıştırabilir. (Karakter uzunluğu sıkıştırılamayacak kadar küçük olabilir ve ayarlanmalıdır)
(Son)
|