Brotli adalah algoritma kompresi baru yang dikembangkan oleh Google. Ukuran respons kompresi yang lebih kecil memungkinkan pemanfaatan ruang yang lebih baik dan pemuatan halaman yang lebih cepat. Dalam banyak kasus, Brotli mengungguli gzip. Keuntungan: Untuk aset web biasa seperti css, html, js, Brotli mengungguli gzip sebesar 17-25%. Kepadatan Brotli -11 dibandingkan dengan gzip-9: html (korpus multibahasa): hemat 25% js (10k tertinggi Alexa): hemat 17% js yang menyusut (10k teratas Alexa): hemat 17% css (10k teratas Alexa): penghematan 20%.
Pengantar algoritma Brotli
Brotli awalnya dirilis pada tahun 2015 untuk kompresi offline font web. Insinyur perangkat lunak Google merilis versi Brotli yang disempurnakan pada September 2015 dengan fokus khusus pada kompresi HTTP. Encoder telah ditulis ulang sebagian untuk meningkatkan rasio kompresi, baik encoder maupun decoder telah ditingkatkan untuk kecepatan, dan API streaming telah ditingkatkan untuk menambahkan lebih banyak tingkat kualitas kompresi. Versi baru ini juga menunjukkan peningkatan kinerja di seluruh platform dan pengurangan memori yang diperlukan untuk decoding.
Tidak seperti algoritma kompresi tujuan umum umum, Brotli menggunakan kamus 120 kilobyte yang telah ditentukan sebelumnya. Kamus ini berisi lebih dari 13.000 kata, frasa, dan substring lain yang umum digunakan dari korpus besar teks dan dokumen HTML. Algoritme yang telah ditentukan sebelumnya dapat meningkatkan kepadatan kompresi file yang lebih kecil.
Menggunakan Brotli alih-alih mengempiskan untuk mengompres file teks biasanya dapat meningkatkan kepadatan kompresi sebesar 20%, sedangkan kecepatan kompresi dan dekompresi kira-kira sama. Jenis pengkodean konten untuk kompresi aliran menggunakan Brotli telah diusulkan untuk menggunakan "br".
Brotli vs. Gzip
Saat mengevaluasi algoritme kompresi, kami fokus pada dua indikator: tingkat kompresi dan kecepatan kompresi. Seperti yang Anda lihat pada gambar di atas, tidak peduli mana dari 9 tingkat kompresi gzip yang digunakan, rasio kompresininya lebih rendah daripada brotli (dibandingkan dengan gzip, juga dapat dikonfigurasi menjadi 10), dan kecepatan kompresi juga lebih lambat.
Brotli Advantage: Brotli mengungguli gzip sebesar 17-25% untuk aset web biasa seperti css, html, js. Kepadatan Brotli -11 dibandingkan dengan gzip-9: html (korpus multibahasa): hemat 25% js (10k tertinggi Alexa): hemat 17% js yang menyusut (10k teratas Alexa): hemat 17% css (10k teratas Alexa): penghematan 20%
asp.net inti memungkinkan Brotli
Nilai header Accept-Encoding
Konfigurasi kode
Kode berikut menunjukkan cara mengaktifkan middleware kompresi responsif untuk jenis MIME default dan penyedia kompresi (Brotli dan Gzip):
Nota:
- aplikasi. UseResponseCompression harus disertakan dalam aplikasi. GunaMvc sebelum menelepon.
- Gunakan alat seperti Fiddler, Firebug, atau Postman untuk menyiapkan header permintaan Accept-Encoding dan mempelajari header, ukuran, dan isi respons.
Secara default, penyedia kompresi Brotli ditambahkan ke array penyedia kompresi bersama dengan penyedia kompresi Gzip. Ketika klien mendukung format data terkompresi Brotli, kompresi default ke kompresi Brotli. Jika klien tidak mendukung Brotli, kompresi default ke Gzip saat klien mendukung kompresi Gzip.
Uji kompresi BR
Buka alat penangkap paket fiddler dan gunakan browser untuk mengakses alamat situs web kami, Anda dapat melihat yang berikut ini:
Header permintaan: Accept-Encoding: gzip, deflate, br
Header respons: Content-Encoding: br
Saat kompresi dilakukan, header Content-Length dihapus karena konten isi berubah saat respons dikompresi.
Saat kompresi dilakukan, header Content-MD5 dihapus karena isi konten telah berubah dan hash tidak lagi valid.
Ketika inti asp.net mengaktifkan fungsi https, Brotli tidak akan berpengaruh pada kompresi html dan json, tetapi dapat mengompres js dan css. (Ada kemungkinan bahwa panjang karakter terlalu kecil untuk dikompresi, dan harus diatur)
(Akhir)
|