Apa itu kompresi GZIP?
GZIP adalah format kompresi file lossless yang didefinisikan oleh RFC 1952. Ia membungkus payload yang dihasilkan oleh algoritma DEFLATE (RFC 1951), yang menggabungkan referensi mundur LZ77 dengan pengkodean Huffman untuk menyusutkan data yang berulang menjadi aliran byte yang ringkas.
Bagaimana kompresi GZIP bekerja?
Masukan Anda diproses sepenuhnya di browser menggunakan API bawaan CompressionStream('gzip'). Langkah-langkah utamanya adalah:
- Alat mengubah teks atau file Anda menjadi aliran byte (UTF-8 untuk masukan teks).
- Byte-byte tersebut diumpankan melalui
CompressionStreamyang dikonfigurasi untuk formatgzip. - Browser menerapkan DEFLATE: lintasan LZ77 dengan jendela geser menemukan urutan yang berulang, dan pengkodean Huffman menetapkan kode lebih pendek untuk simbol-simbol umum.
- Header gzip 10-byte dan footer 8-byte (CRC32 dari data asli ditambah panjang asli modulo 2^32) dibungkus di sekitar payload DEFLATE, menghasilkan wadah .gz standar.
- Hasilnya ditampilkan sebagai Base64 atau heksadesimal untuk masukan teks, atau ditawarkan sebagai file .gz yang dapat diunduh untuk masukan biner.
Mengapa mengompres dengan GZIP?
- Payload lebih kecil: teks, JSON, HTML, CSS, dan kode sumber biasanya menyusut menjadi sebagian kecil dari ukuran aslinya.
- Standar industri: GZIP dipahami oleh hampir setiap server HTTP, CDN, browser, alat arsip, dan pustaka standar bahasa pemrograman.
- Privasi: kompresi terjadi sepenuhnya di browser Anda. Masukan tidak pernah mencapai server kami.
- Siap pulang-pergi: keluaran terdekompresi dengan CLI
gunzip, dengan HTTPContent-Encoding: gzip, dan dengan pembaca RFC 1952 mana pun di Python, Node.js, Go, Java, atau Rust.
Apa saja aplikasi umum dari kompresi GZIP?
GZIP digunakan di seluruh web dan dalam perkakas baris perintah:
- Transfer HTTP: server web mengompresi respons dengan GZIP agar halaman dimuat lebih cepat melalui jaringan.
- Arsip log: log server jangka panjang disimpan sebagai file .gz untuk mengurangi penggunaan disk.
- Pencadangan dan paket: tarball (.tar.gz) mengompresi seluruh pohon direktori untuk distribusi portabel.
Seperti apa contoh kompresi GZIP?
Dokumen JSON sebesar 1 KB dengan banyak nama bidang berulang biasanya dikompresi menjadi sekitar 200–300 byte — pengurangan ukuran empat hingga lima kali lipat. Log teks besar sering kali terkompresi 90% atau lebih. Masukan yang sudah terkompresi (JPEG, PNG, MP4, ZIP) tidak akan menyusut lebih jauh dan dapat bertambah beberapa byte karena pembingkaian GZIP.
Kompresor GZIP ini menghasilkan keluaran RFC 1952 standar langsung di browser Anda. Baik Anda menyusutkan payload sebelum transmisi atau membuat file .gz untuk pengarsipan, hasilnya kompatibel dengan setiap alat yang mendukung GZIP di jaringan.