Developer Toolbox

gzip (DEFLATE)

Lihat cara gzip memperkecil teks: pengulangan menjadi salinan pendek, dan kode Huffman memberi simbol yang sering muncul lebih sedikit bit.

  • Jendela: 32 KB
  • Salinan: 3-258 byte
  • Kode: hingga 15 bit
  • Bingkai gzip: 18 byte
Apa artinya?
  • Literal: karakter yang ditulis apa adanya, karena tidak ada pengulangan 3 karakter atau lebih yang dimulai di posisinya.
  • Salinan: panjang dan jarak yang berarti "ambil karakter sebanyak ini dari sejauh ini ke belakang". Salinan boleh tumpang tindih dengan teks yang dihasilkannya.
  • Jendela: seberapa jauh ke belakang kompresor boleh mencari pengulangan. 32 KB di gzip, hingga 16 MB di Brotli.
  • Kode Huffman: deretan bit untuk tiap simbol, lebih pendek untuk simbol yang sering muncul, dibangun dari pohon yang terus menggabungkan dua simbol paling jarang.
  • Bebas prefiks: tidak ada kode yang menjadi awal kode lain, sehingga aliran kode bisa dibaca kembali tanpa pemisah.
LZ77 dan Huffman, langkah demi langkah 0 / 19 langkah

Teks ini berisi 23 karakter, 184 bit tanpa kompresi. Kompresor membacanya dari kiri ke kanan dan di setiap posisi bertanya apakah yang berikutnya sudah pernah muncul.

Spasi: putar atau jeda. Panah kiri dan kanan: melangkah. Home dan End: lompat.

Coba ini: Ketik huruf yang sama berkali-kali. Satu salinan dengan jarak 1 mencakup semuanya, karena salinan boleh tumpang tindih dengan teks yang dihasilkannya.

Cara kerjanya

gzip menjalankan DEFLATE dalam dua tahap. LZ77 menelusuri teks dan, di setiap posisi, mencari deretan byte terpanjang yang sudah muncul dalam 32 KB terakhir; alih-alih mengulanginya, ia menulis sepasang angka: berapa byte yang disalin (3-258) dan seberapa jauh ke belakang letaknya. Semua yang tersisa, yaitu literal dan pasangan tadi, lalu ditulis dengan kode Huffman: simbol yang sering muncul mendapat kode pendek dan yang jarang mendapat kode panjang. gzip membungkus hasilnya dengan header 10 byte dan trailer 8 byte yang berisi checksum CRC-32.

Kapan ini pilihan yang tepat

gzip memampatkan teks yang banyak berulang: HTML, CSS, JavaScript, JSON, log, CSV. Semua browser dan server memahaminya, cepat di setiap level, dan menjadi pilihan default yang aman untuk mengompresi respons secara langsung. Data yang sudah terkompresi, seperti JPEG, PNG, WOFF2, atau ZIP, tidak punya pengulangan lagi, jadi gzip hanya menambahkan bingkainya.

Pada teks Anda sendiri

Dua tahap yang sama, dikerjakan oleh gzip sungguhan (level 6) pada teks yang lebih panjang. Tempel teks Anda sendiri, atau bawa dari alat Kompresi Gzip & Brotli.

Masukan