Format Arsip GZIP

GZIP adalah format file populer dan aplikasi perangkat lunak yang digunakan untuk kompresi dan dekompresi file. Ini dikembangkan sebagai algoritma kompresi sumber terbuka dan gratis oleh Jean-Loup Gailly dan Mark Adler pada awal 1990an. Nama “GZIP” adalah singkatan dari GNU ZIP, yang menunjukkan hubungannya dengan Proyek GNU.
Kompresi GZIP bekerja dengan mengurangi ukuran file, membuatnya lebih mudah untuk ditransfer melalui jaringan atau disimpan di disk. Ini mencapai kompresi dengan mengganti string data yang berulang dengan referensi, sehingga mengurangi redundansi dan ukuran file secara keseluruhan. GZIP sangat efisien untuk mengompresi file berbasis teks seperti HTML, CSS, JavaScript, XML, dan JSON, namun juga dapat digunakan untuk mengompresi jenis file lainnya.

Tentang Informasi Arsip GZIP

Informasi arsip GZIP mengacu pada metadata dan data yang terkandung dalam file yang dikompresi menggunakan algoritma kompresi GZIP. Arsip GZIP biasanya menyertakan informasi seperti atribut file, stempel waktu, metode kompresi, dan data relevan lainnya yang diperlukan untuk dekompresi dan pemulihan file. Metadata ini sangat penting untuk mengidentifikasi dan memproses file terkompresi dengan benar.
Selain itu, informasi arsip GZIP juga dapat mencakup detail tentang proses kompresi itu sendiri, seperti tingkat kompresi, checksum, dan tanda atau opsi tambahan apa pun yang digunakan selama kompresi. Informasi ini penting untuk memastikan integritas dan kebenaran data terkompresi saat mendekompresinya. Secara keseluruhan, memahami informasi arsip GZIP sangat penting untuk mengelola dan bekerja dengan file terkompresi secara efektif, baik untuk penyimpanan data, transmisi melalui jaringan, atau tujuan pengarsipan.

Evolusi Format Arsip GZIP

Format arsip GZIP berakar pada akhir tahun 1980an ketika Jean-loup Gailly dan Mark Adler mengembangkan algoritma kompresi GZIP sebagai bagian dari proyek GNU. GZIP adalah singkatan dari GNU ZIP, yang mencerminkan asal usulnya dalam proyek GNU. Tujuannya adalah untuk menciptakan alat kompresi yang dapat secara efisien mengurangi ukuran file dengan tetap menjaga kompatibilitas di berbagai sistem komputer.
Jean-loup Gailly dan Mark Adler mengembangkan program ini sebagai alternatif gratis untuk utilitas kompres yang ditemukan di sistem Unix awal. Ini dirancang untuk menjadi bagian dari proyek GNU, oleh karena itu huruf “g” di gzip. Rilis awal, versi 0.1, tersedia untuk umum pada tanggal 31 Oktober 1992, diikuti oleh versi 1.0 pada bulan Februari 1993.

Struktur GZIP

GZIP menggunakan algoritma DEFLATE, yang menggabungkan teknik pengkodean LZ77 dan Huffman. DEFLATE dikembangkan untuk menggantikan LZW dan algoritme kompresi lainnya yang dibebani oleh paten, yang membatasi efektivitas kompresi dan utilitas pengarsipan serupa yang lazim pada saat itu. Format file GZIP mengikuti struktur terdefinisi dengan baik yang terdiri dari tiga bagian utama:

  • Header (10 byte): Bagian ini memberikan informasi penting tentang arsip dan isinya. Berikut rincian data header
  • Nomor Ajaib (4 byte): Ini mengidentifikasi file sebagai arsip GZIP. Ia memiliki nilai heksadesimal tertentu (1f 8b) yang dikenali oleh alat dekompresi.
  • Metode Kompresi (1 byte): Byte ini biasanya memiliki nilai 8, yang menunjukkan algoritma kompresi DEFLATE yang digunakan oleh GZIP.
  • Bendera Header (1 byte): Bendera ini mengontrol aspek dekompresi tertentu, seperti pengkodean nama file atau keberadaan komentar.
  • Waktu Pembuatan (4 byte): Bagian ini menyimpan stempel waktu Unix yang menunjukkan waktu pembuatan arsip.
  • CRC-32 (4 byte): Nilai Cyclic Redundancy Check ini digunakan untuk deteksi kesalahan selama dekompresi. Ini dihitung berdasarkan data yang tidak terkompresi dan memungkinkan perangkat lunak dekompresi memverifikasi integritas file yang diekstraksi.

Manfaat format ini

  • Kompresi Lossless: GZIP mengompresi data tanpa kehilangan informasi apa pun. Tidak seperti beberapa teknik kompresi, file asli dapat direkonstruksi dengan sempurna setelah dekompresi. Hal ini penting untuk dokumen, gambar, atau kode penting yang mengharuskan menjaga integritas data.
  • Kompatibilitas Luas: Salah satu kekuatan terbesar GZIP adalah penerapannya secara luas. Ini didukung oleh sebagian besar sistem operasi, utilitas arsip (WinRAR, 7-Zip), dan server web. Hal ini memastikan Anda dapat dengan mudah membuka file GZIP di berbagai platform tanpa memerlukan perangkat lunak khusus. GZIP juga didukung secara luas di berbagai sistem operasi, termasuk sistem berbasis Unix, Linux, Windows, dan macOS. Kompatibilitas lintas platform ini memastikan bahwa file yang dikompresi GZIP dapat dibuat dan didekompresi dengan lancar di berbagai lingkungan.
  • Kompresi Streaming: GZIP mendukung kompresi aliran, memungkinkan file dikompresi atau didekompresi dengan cepat tanpa perlu menunggu seluruh file diproses. Hal ini membuatnya cocok untuk skenario di mana data dihasilkan atau dikirim secara terus-menerus, seperti komunikasi jaringan dan operasi pencadangan data.
  • Standar Terbuka: GZIP adalah standar terbuka dan diadopsi secara luas untuk kompresi file, dengan spesifikasi tersedia untuk umum. Keterbukaan ini mendorong interoperabilitas dan kompatibilitas di antara berbagai aplikasi dan sistem perangkat lunak, membina ekosistem alat dan pustaka yang dinamis untuk bekerja dengan file yang dikompresi GZIP. Memanfaatkan GZIP umumnya mudah. Banyak alat dan perangkat lunak yang secara otomatis mengompres atau mendekompresi file dalam format ini. Selain itu, proses dekompresi efisien dan membutuhkan sumber daya minimal.

Operasi yang Didukung Arsip GZIP

Aspose.ZIP memungkinkan pengguna mengekstrak entri tertentu atau seluruh arsip. Untuk Aspose.ZIP untuk .NET Anda dapat menggunakan GzipArchiveClass untuk membuka file .gz dan kemudian mengulangi entri-entrinya, mengekstraknya ke lokasi yang diinginkan. Untuk Aspose.ZIP untuk Java Pendekatan serupa menggunakan GzipArchive untuk membuka file .gz dan mengekstrak entri.

File GZIP - Struktur Internal

Arsip GZIP seperti paket yang terbungkus rapi. Ini dimulai dengan header 10-byte yang memperkenalkan format dan metode kompresi. Intinya terletak pada bagian data terkompresi, menyusut menggunakan algoritma cerdas. Terakhir, footer 8-byte memverifikasi integritas data dengan checksum, memastikan file Anda tiba dengan aman setelah dekompresi.

File GZIP - Struktur Internal

Struktur Arsip Dalam

  • Metadata File - Mirip dengan arsip tar, setiap file menyimpan informasi dasar seperti waktu modifikasi dan izin. Namun, bagian ini fleksibel dan memungkinkan penghapusan atau penyertaan detail tambahan seperti daftar kontrol akses (ACL) atau atribut yang diperluas (EA) berdasarkan kebutuhan Anda. Disarankan untuk menyertakan fungsi hash yang kuat (seperti SHA1) untuk file biasa guna memastikan integritas data.
  • Beberapa Aliran Konten - Tidak seperti arsip tradisional, file dapat memiliki lebih dari satu aliran data dalam file data bagian dalam. Ini berguna untuk menyimpan atribut yang diperluas atau sumber daya yang terkait dengan file.
  • Header - File indeks bagian dalam menyimpan header file, mencerminkan header yang tersebar di seluruh file data bagian dalam. Namun, bila disimpan secara terpisah, header indeks harus merujuk pada posisi awal data terkait di dalam file data. Selain itu, entri direktori dalam indeks mencantumkan file yang terkandung di dalamnya dan offset terkait dalam indeks file bagian dalam.
  • Alasan untuk Metadata Duplikat - Pilihan desain ini memastikan streaming/decoding data yang efisien dan akses file acak. Selain itu, metadata terkompresi dengan baik, sehingga menghemat biaya penyimpanan. Pengujian menunjukkan metadata biasanya menempati kurang dari 0,3% ruang penyimpanan, sehingga pertukaran ini bermanfaat.
  • Block Header - Header blok, mirip dengan file luar, berisi informasi ukuran blok dan urutan pengidentifikasi unik.

Contoh Penggunaan GZIP

Aspose.ZIP API memungkinkan mengekstrak arsip di aplikasi Anda tanpa memerlukan aplikasi pihak ketiga lainnya. Aspose.ZIP API menyediakan kelas GzipArchive untuk bekerja dengan arsip GZIP.

GZIP with compress only single source via C#

Such archives like GZIP, LZ, BZIP2, XZ, Z do not support entries and can compress only single source. See samples with such a compression.

    using (FileStream source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
    {
        using (GzipArchive archive = new GzipArchive())
        {
            archive.SetSource(source);
            archive.Save(«archive.gz);
        }
    }

Aspose.Zip offers individual archive processing APIs for popular development environments, listed below:

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

Informasi tambahan tentang arsip GZIP

Orang-orang telah bertanya

1. Apa itu GZIP?

GZIP (arsip zip GNU) adalah format file populer yang memperkecil ukuran file untuk memudahkan penyimpanan dan transmisi.

2. Bagaimana kompresi GZIP dibandingkan dengan format lain seperti ZIP?

GZIP biasanya menawarkan rasio kompresi yang lebih tinggi dibandingkan ZIP, terutama saat mengompresi file berbasis teks. Namun, arsip ZIP sering kali menyertakan dukungan untuk banyak file dan direktori, sehingga lebih serbaguna untuk mengemas banyak file secara bersamaan .

3. Bisakah GZIP mengompresi banyak file menjadi satu arsip?

GZIP dirancang untuk mengompresi satu file, bukan beberapa file atau direktori. Namun, merupakan hal yang umum untuk menggunakan alat seperti tar yang dikombinasikan dengan GZIP untuk membuat tarball arsip tar lalu kompres menggunakan GZIP untuk membuat satu file terkompresi.