Gzip vs Brotli – Metode Kompresi Mana yang Harus Anda Gunakan dan Mengapa
Diterbitkan: 2018-03-02Gzip menjadi standar emas untuk kompresi file pada awal 1990-an, tetapi jika Anda masih menggunakannya 2018, maka Anda mungkin ingin mempertimbangkan untuk beralih ke metode kompresi yang lebih baru.
Meskipun Gzip masih memiliki tempat di hati banyak orang, pengembang web semakin beralih ke opsi unggulan seperti algoritma kompresi Google Brotli.
Sejarah Singkat Kompresi File
"G" di Gzip adalah kependekan dari GNU. GNU adalah open source, sistem operasi berbasis Unix yang dikembangkan pada 1980-an. Pada saat itu, Unisys dan IBM telah mematenkan algoritma mereka sendiri untuk mengompresi dan mendekompresi file, yang memungkinkan mesin mereka menyimpan lebih banyak data. Oleh karena itu, programmer Jean-loup Gailly dan Mark Adler membuat Gzip sebagai alternatif gratis bagi pengguna GNU.
Gzip baru bukan hanya tiruan murahan; itu sebenarnya lebih cepat daripada pesaingnya yang memiliki hak cipta. Akibatnya, orang masih menggunakannya untuk kompresi file hingga hari ini. Meskipun mudah untuk tetap dengan apa yang Anda sukai, ada berbagai algoritma kompresi yang saat ini memberikan hasil kompresi yang lebih baik daripada Gzip. Di situlah Brotli masuk.
Apa itu Brotli?
Brotli adalah spesifikasi format data baru yang memanfaatkan beberapa algoritme untuk memadatkan data lebih efisien daripada Gzip. Pada tahun 2015, spesifikasi Brotli digeneralisasi untuk kompresi aliran HTTP dengan tipe pengkodean konten 'br'.
Dikembangkan oleh Jyrki Alakuijala dan Zoltan Szabadka, Brotli menggunakan algoritma kompresi yang sama seperti Gzip, tetapi juga didukung oleh kamus kata dan frasa yang sering digunakan untuk memberikan rasio kompresi yang lebih baik.
Perlu diingat bahwa Gzip dan Brotli hanya boleh digunakan untuk mengompresi file teks. File biner seperti JPEG dan MP4 bergantung pada algoritme kompresi khusus formatnya sendiri. Jika Anda mencoba mengompres JPEG dengan Brotli, file yang dihasilkan sebenarnya akan lebih besar dari aslinya.
Meskipun tidak selalu seperti ini, Brotli sekarang didukung oleh semua browser utama.
Jika browser yang tidak mendukung Brotli meminta aset dari situs yang mengirimkan file terkompresi Brotli, server akan mundur ke Gzip dan mengirimkan aset yang disandikan yang didukung browser – mengingat server dikonfigurasi dengan benar.
Apa yang Membuat Brotli Lebih Baik?
Menurut penelitian yang dilakukan oleh CertSimple:
- Bundel JavaScript yang dikompresi dengan Brotli 14 persen lebih kecil dari bundel Javascript yang dikompresi dengan Gzip.
- File HTML yang dikompresi oleh Broti 21 persen lebih kecil dari yang setara dengan Gzip.
- File CSS yang dikompresi oleh Brotli 17 persen lebih kecil daripada yang dikompresi oleh Gzip.
Karena sebagian besar situs web mengandalkan ketiga jenis aset ini, itu adalah perbedaan besar dalam ukuran aset jika dibandingkan dengan Gzip. Penghematan ini, pada gilirannya, akan membuat peningkatan yang nyata dalam kinerja aplikasi Anda.
Gzip vs Brotli: Mendapatkan Hasil Maksimal dari Brotli
Meskipun Anda mungkin pernah mendengar mengompresi aset dengan Brotli tidak lebih lambat dari Gzip. Karena itu, Gzip dan Brotli menawarkan tingkat kompresi yang bervariasi, dan pengaturan default Brotli dapat menghasilkan kompresi yang lebih lambat daripada pengaturan default Gzip. Anda harus membuat beberapa penyesuaian pada Brotli untuk mencapai keseimbangan yang dapat diterima antara ukuran file dan kecepatan kompresi.
Pengaturan kompresi yang ideal tergantung pada apa dan kapan Anda mengompresi. Titik awal yang baik adalah Brotli 4 untuk kompresi konten dinamis yang lebih cepat. Di sisi lain, aset statis dapat dikompresi lebih padat sebelumnya tanpa mengorbankan kecepatan, sehingga pengaturan default "11" lebih sesuai untuk konten tersebut.
Menginstal Brotli di Server Web Anda
Menambahkan dukungan untuk Brotli memberikan keuntungan yang signifikan dengan sedikit usaha. Bergantung pada perangkat lunak server web yang Anda gunakan akan menentukan metode integrasi mana yang perlu Anda gunakan untuk mengintegrasikan Brotli. Berikut ini menguraikan beberapa opsi yang tersedia:
- Nginx memiliki ekstensi Brotli yang ditawarkan oleh Google.
- Apache menawarkan ekstensi Brotli khusus.
- Microsoft IIS tidak menawarkan dukungan Brotli resmi, namun ada modul komunitas yang menambahkan dukungan.
- Node.js mirip dengan Microsoft karena tidak ada dukungan resmi namun ada modul komunitas.
Untuk mendemonstrasikan contoh instalasi cepat, katakanlah Anda menjalankan Nginx. Dalam hal ini, Anda dapat menginstal modul ngx_brotli dengan yang berikut:
cd nginx-1.x.x $ ./configure --add-module=/path/to/ngx_brotli $ make && make install
Selanjutnya, tambahkan berikut ini ke blok HTTPS (Brotli hanya berjalan melalui HTTPS):
brotli on; brotli_static on; brotli_comp_level 4; brotli_types text/plain text/css application/javascript application/json image/svg+xml application/xml+rss;
Anda dapat memodifikasi arahan di atas sesuai keinginan Anda.
Terakhir, masukkan yang berikut ini untuk memulai ulang NGINX dan mulai menuai manfaatnya:
sudo systemctl restart nginx
Menggunakan Brotli dengan Aset Terkompresi
Brotli sangat bagus untuk mengirimkan aset yang telah dikompresi jauh lebih cepat daripada Gzip. Ini karena fakta bahwa Anda dapat mengompresnya di level tertinggi Brotli (11) dan kemudian meminta server asal mengambilnya kapan pun diminta.
Pengaturan semacam ini bekerja sangat baik dengan Webpack karena plugin Webpack tersedia untuk secara otomatis mengompresi aset statis Anda sebagai Gzip dan Brotli. Oleh karena itu, tidak diperlukan kompresi on-the-fly yang berarti waktu yang dihabiskan untuk mengompresi file akan disimpan.
Pelajari lebih lanjut tentang cara menggunakan Webpack untuk menghasilkan aset terkompresi Brotli.
Apakah CDN Anda Mendukung Brotli?
Untuk mendapatkan manfaat Brotli sepenuhnya, Anda memerlukan jaringan pengiriman konten yang mendukungnya. KeyCDN, misalnya, memperkenalkan dukungan Brotli tahun lalu untuk semua pelanggan tanpa biaya tambahan. Oleh karena itu, situs Anda tidak hanya akan mendapat manfaat dari pengurangan ukuran file berkat kompresi Brotli yang lebih baik, tetapi mereka juga akan mendapat manfaat dari pengurangan latensi berkat aset yang di-cache di server edge yang lebih dekat dengan pengunjung Anda.
Metode ini mengharuskan server asal Anda mendukung Brotli dan bahwa kompresi sebenarnya terjadi di sisi server asal. Sekali lagi, ini membantu menghemat waktu dan menghindari kebutuhan akan kompresi cepat yang dapat merusak kinerja.
Gzip vs Brotli: Ringkasan
Sedikit usaha yang diperlukan untuk menambahkan Brotli ke server web Anda sepadan dengan penghematan ukuran file yang substansial. Meskipun Brotli terkadang berjalan lebih lambat pada pengaturan kompresi tertinggi, Anda dapat dengan mudah mencapai keseimbangan ideal antara kecepatan kompresi dan ukuran file dengan menyesuaikan pengaturan.
Meskipun menggunakan Brotli dapat mengubah aplikasi web cepat menjadi aplikasi yang lebih cepat, itu tidak serta-merta membuat aplikasi lambat menjadi cepat. Karena Brotli hanya mengompresi aset berbasis teks, Anda harus mengoptimalkan gambar Anda dengan cara lain. Jika Anda belum melakukan lompatan ke HTTP/2, melakukannya dapat membuat perbedaan besar dalam kinerja aplikasi Anda. Setiap milidetik penting, jadi tindakan apa pun yang Anda ambil untuk mempercepat aplikasi meningkatkan peluang Anda untuk mempertahankan pengguna.