GZIP Arşivi (.gz)
IETF StandartGzip (GZ), Unix işletim sistemlerinde ve internet HTTP sunucularında hızlı dosya ve web varlığı sıkıştırması için olarak dağıtılan standart GNU sıkıştırma aracı ve dosya formatıdır.
TAR biçimini GZ biçimine dönüştür
Tarayıcında TAR biçimini GZ biçimine ücretsiz dönüştür. Dosyaları cihazında anında dönüştür.
İncele ve Meta Veriler
İşletim sistemleri ve dosya çözümleyicileri, GZ dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:
Bayt düzeyinde başlık imzası (sihirli baytlar)
İşletim sistemleri ve dosya çözümleyicileri, GZ dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:
HEX İMZASI (OFSET 0):
1F 8B 08ASCII GÖSTERİMİ: ..\x08
Standartlaştırma: IETF RFC 1952
Teknik Özellikler
| Kapsayıcı mimarisi | Ardından DEFLATE akışı ve 8 baytlık altbilgi gelen 10 baytlık üstbilgi (sihirli değer 0x1F 0x8B, yöntem 8, bayraklar, mtime, OS) |
| Sıkıştırma | DEFLATE algoritması (LZ77 kayan penceresi + Huffman kodlaması) |
| Bayt Düzeni (Endianness) | Küçük uçlu üstbilgi ve altbilgi tamsayıları |
| Renk Uzayları | N/A (Archive Container) |
| Kanallar ve Yapı | Tek dosyalık sıkıştırılmış bayt akışı |
| Maksimum Boyutlar | Sıkıştırılmamış boyut 2^32 modunda kaydedilir (sınırsız akış uzunluğunu destekler) |
| Şeffaflık | Verilerin bit düzeyinde %100 tam ve kayıpsız korunması |
| Akış ve Aşamalı İşleme | Boru hatları ve HTTP ağları üzerinden tek geçişli sıralı akış oynatımı |
Teknik karşılaştırma matrisi: GZ ve rakipleri
| Teknik Nitelik | GZ (Güncel) | BZ2 | BROTLI | ZSTD |
|---|---|---|---|---|
| Dosya Açma Hızı | Hızlı (~300 MB/s) | Yavaş (~40 MB/s) | Çok Hızlı (~400 MB/s) | Ultra Hızlı (>1.5 GB/s) |
| Webde yaygın kullanım | Tüm tarayıcıların ve sunucuların %100'ü | Sıfır web tarayıcısı desteği | Tüm tarayıcılarda HTTPS üzerinden desteklenir | Büyüyen tarayıcı ve sunucu desteği |
| Çoklu Dosya Paketleme | TAR kapsayıcısı gerektirir (.tar.gz) | TAR kapsayıcısı gerektirir (.tar.bz2) | Ham akış veya özel kapsayıcı | TAR kapsayıcısı gerektirir (.tar.zst) |
| Sağlama Toplamı Doğrulaması | 32-bit CRC (CRC-32) | Blok başına 32-bit CRC | Akışta dahili yok | 64-bit xxHash |
Yaygın Bozulma Modları ve Hex Kurtarma Kılavuzu
Çıkarma hatası: 'gzip: stdin: unexpected end of file'.
Kök Neden: DEFLATE akışını veya 8 baytlık CRC32 alt bilgisini kesintiye uğratan erken dosya aktarım sonlandırması.
Kurtarma: Kısmi içeriği 'gzip -d --keep broken.gz' komutuyla veya File2File.app Gzip Extractor ile çıkar.
Güvenlik Analizi ve Ayrıştırıcı Saldırı Vektörleri
Gzip ayrıştırıcıları, kullanıcı kontrollü başlıkları ve sıkıştırma bombalarına karşı korunması gereken DEFLATE bit akışlarını işler.
Bilinen Saldırı Vektörleri
- Megabaytlarca Gzip verisini yüzlerce gigabayt disk alanına genişleten sıkıştırma bombası (zip bombası).
- Başlıktan isteğe bağlı orijinal dosya adı dizesi okunurken arabellek taşması (buffer overflow).
- 32-bit CRC kontrolü karşılaştırması sırasında tamsayı taşması.
Savunmaya yönelik en iyi uygulamalar: Otomatik veri alma hizmetlerinde açma kotaları ve bellek kullanımı için katı üst sınırlar koy.
Tarihsel kökenler ve önemli dönüm noktaları
Temel Avantajlar ve Artılar
- Web istemcilerinin %100'ü tarafından desteklenen, internet HTTP sıkıştırması ('Content-Encoding: gzip') için evrensel kıstas.
- 10 baytlık başlık içinde orijinal dosya değişiklik zaman damgalarını ve isteğe bağlı orijinal dosya adlarını korur.
- Düşük güç tüketimine sahip mobil cihazlarda ve yönlendiricilerde sorunsuz çalışan, dosya açma sırasında hafif CPU tüketimi.
Teknik Kısıtlamalar ve Eksiler
- Yalnızca tek dosya sıkıştırır: birden fazla dosya veya dizini önce bir TAR kapsayıcısında birleştirmeden sıkıştıramaz.
- Sıkıştırma oranı, modern web metinlerinde Brotli ve Zstandard gibi modern algoritmalara göre daha düşüktür.
- Alt bilgideki sıkıştırılmamış boyut alanı 32-bit modulo 2^32'dir ve 4 GB'tan büyük dosyalarda taşma nedeniyle görüntüleme hatalarına yol açar.
İlginç Teknik Bilgiler
- 0x1F 0x8B sihirli baytları seçilmiştir çünkü 0x1F tarihsel olarak Unix 'compress' dosyalarının ilk baytıyken, 0x8B Gzip'i tanımlar.
- İnternetteki web sitelerinin %80'inden fazlası, web sayfalarını tarayıcılara ulaştırmak için Gzip sıkıştırmasını kullanır.
- Jean-loup Gailly sıkıştırma kodunu yazarken, Mark Adler dosya açma (inflate) kodunu yazmıştır; her ikisi de ACM Yazılım Sistemleri Ödülü'nü almıştır.
Sıkça Sorulan Teknik Sorular
Gzip ile neden bir klasörü sıkıştıramıyorum?
Gzip, tek bir bayt akışını sıkıştırmak için tasarlanmıştır. Bir klasörü sıkıştırmak için Unix sistemleri önce klasörü tek bir .tar dosyasında birleştirir, ardından .tar.gz dosyası oluşturmak için Gzip ile sıkıştırır.
.gz ve .zip arasındaki fark nedir?
.zip, birden fazla dosyayı dizin indeksiyle birlikte paketleyen bir arşiv formatıdır. .gz ise yalnızca tek bir dosyayı sıkıştırır ve Unix sistemlerinde genellikle tar ile birlikte kullanılır.
Windows veya Mac'te bir .gz dosyasını nasıl açabilirim?
.gz dosyalarını hiçbir yazılım yüklemeden doğrudan web tarayıcında anında açmak için File2File.app'i kullan.
İlgili GZ Dönüşüm Çiftleri
Bir TAR arşivini GZIP arşivine dönüştürmek, dosya boyutunu büyük ölçüde azaltmak için kayıpsız DEFLATE algoritmasını kullanarak sıkıştırılmamış bir dosya koleksiyonunu tek bir sıkıştırılmış akışta sarar.
.tar.gz veya .tgz gibi GZIP ile sıkıştırılmış bir TAR arşivinden TAR verilerini çıkar.