Deflate biçiminden GZIP biçimine dönüştürücü
Ham DEFLATE'i GZIP Akışına dönüştürmek, işletim sistemlerinin ve web araçlarının düzgün bir şekilde okuyabilmesi için sıkıştırılmış yükü meta veri başlıklarına sahip standart bir kapsayıcı içine sarar.
Biçim karşılaştırması ve teknik özellikler
| Teknik belirtim | DEFLATE | GZIP |
|---|---|---|
| MIME Türü | application/ | application/ |
| Tür | ham DEFLATE akışı | DEFLATE akış kapsayıcısı |
| Sıkıştırma | LZ77 + Huffman kodlaması | DEFLATE (RFC 1951) |
| Standart belirtimi | IETF RFC 1950 / RFC 1951 | IETF RFC 1952 |
| Sihirli bayt başlığı | 78 01 / 78 9C / 78 DA (zlib header bytes) | 1F 8B (gzip ID1/ID2) |
Format Genel Bakışı ve Kullanım Alanları
Ham DEFLATE veri akışları, herhangi bir dosya başlığı veya sondaki sağlama toplamı (checksum) olmaksızın sıkıştırılmış baytlar içerir. Web tarayıcıları ve ağ araçları, orijinal dosya adları, değiştirme zaman damgaları veya işletim sistemi tanımlayıcıları gibi meta verilerden yoksun oldukları için genellikle bu çıplak akışları işlemekte zorlanır. Bu ham verileri bir GZIP kapsayıcısı içinde sarmalamak bu uyumluluk sorunlarını çözer. Geliştiriciler; HTTP sıkıştırması, PNG görüntü yığınları ve ZIP arşivleri gibi ağ protokollerinin içinde ham DEFLATE akışlarıyla karşılaşır. Bu akışların komut satırı araçları veya standart web indirmeleri için bağımsız dosyalar olarak kaydedilmesi gerektiğinde, mühendisler bunları GZIP formatına dönüştürür. Bu, sıkıştırma açma yardımcı programlarının dosya türünü anında tanımasını ve hatalarla karşılaşmadan içeriği ayıklamasını sağlar.
Teknik Özellikler ve Kodek Ayrıntıları
Ham DEFLATE, LZ77 eşleştirmesi ve Huffman kodlaması kullanan; çerçeveleme başlığı veya sabit imzası olmayan RFC 1951 bit akışıdır. application/zlib MIME türü ham DEFLATE'i değil, RFC 1950'ye göre zlib sarmalayıcısı içindeki DEFLATE akışını tanımlar. GZIP (application/gzip), DEFLATE yükünü 1F 8B baytlarıyla başlayan bir başlık ve CRC32 sağlama toplamı ile sıkıştırılmamış boyutu içeren bir son kayıtla sarar.
İşletim Sistemi ve Tarayıcı Uyumluluğu
GZIP akışları Linux, macOS ve Windows dahil modern işletim sistemlerinde geniş çapta desteklenir. gzip, gunzip ve 7-Zip gibi komut satırı araçları GZIP dosyalarını yerel olarak okur. Web tarayıcıları sunuculardan HTTP yanıtı alırken GZIP sıkıştırmasını otomatik olarak açar; ancak ham DEFLATE, JavaScript ortamlarında veya WebAssembly modüllerinde çoğu zaman özel ayrıştırıcı mantığı gerektirir.
Faydalı bilgiler
Sıkıştırılmış veri sağlam olsa bile bozuk sondaki CRC32 sağlama toplamı çıkarma araçlarının durmasına neden olabilir. Sıkıştırmayı açan aracın GZIP son kaydını doğru okuduğunu doğrula.
Sıkça Sorulan Sorular
Kalite kaybı yaşamadan Ham DEFLATE akışını GZIP Akışına nasıl dönüştürürsünüz?
Her iki biçim de aynı DEFLATE algoritmasına dayanan kayıpsız sıkıştırma kullanır. Aralarında dönüşüm yapılırken var olan sıkıştırılmış baytlara kapsayıcı üstbilgileri ve sağlama toplamları eklenir; bu işlemde veri kaybı olmaz.
Ham DEFLATE ile GZIP Akışı arasındaki fark nedir?
Ham DEFLATE yalnızca sıkıştırılmış veriyi içerir; tanımlayıcı bir üstbilgisi veya son eki yoktur. GZIP akışı, meta verileri saklamak ve hataları saptamak için ham DEFLATE verisine 10 baytlık bir üstbilgi ve 8 baytlık bir sağlama toplamı ekleyen standart bir dosya kapsayıcısıdır.