Ce este compresia GZIP?
GZIP este un format de fișier de compresie fără pierderi definit de RFC 1952. Învelește un payload produs de algoritmul DEFLATE (RFC 1951), care combină referințele inverse LZ77 cu codificarea Huffman pentru a micșora datele repetitive într-un flux compact de octeți.
Cum funcționează compresia GZIP?
Intrarea ta este procesată în întregime în browserul tău folosind API-ul nativ CompressionStream('gzip'). Pașii principali sunt:
- Instrumentul convertă textul sau fișierul tău într-un flux de octeți (UTF-8 pentru intrare text).
- Acești octeți sunt alimentați printr-un
CompressionStreamconfigurat pentru formatulgzip. - Browserul aplică DEFLATE: un pas LZ77 cu fereastră glisantă găsește secvențe repetitive, iar codificarea Huffman atribuie coduri mai scurte simbolurilor comune.
- Un antet gzip de 10 octeți și un subsol de 8 octeți (CRC32 al datelor originale plus lungimea originală modulo 2^32) sunt înfășurate în jurul payload-ului DEFLATE, producând un container .gz standard.
- Rezultatul este redat ca Base64 sau hex pentru intrare text, sau oferit ca fișier .gz descărcabil pentru intrare binară.
De ce să comprimi cu GZIP?
- Payload-uri mai mici: textul, JSON, HTML, CSS și codul sursă se micșorează de obicei la o fracțiune din dimensiunea lor originală.
- Standard industrial: GZIP este înțeles de practic fiecare server HTTP, CDN, browser, instrument de arhivă și bibliotecă standard de limbaj de programare.
- Confidențialitate: compresia are loc în întregime în browserul tău. Intrarea nu ajunge niciodată la serverele noastre.
- Gata de dus-întors: ieșirea se decomprimă cu utilitarul
gunzip, cu HTTPContent-Encoding: gzipși cu orice cititor RFC 1952 în Python, Node.js, Go, Java sau Rust.
Care sunt aplicațiile comune ale compresiei GZIP?
GZIP este utilizat pe web și în uneltele de linie de comandă:
- Transfer HTTP: serverele web comprimă răspunsurile cu GZIP pentru ca paginile să se încarce mai repede prin rețea.
- Arhivare jurnale: jurnalele de server de lungă durată sunt stocate ca fișiere .gz pentru a reduce utilizarea discului.
- Backup-uri și pachete: tarball-urile (.tar.gz) comprimă arbori întregi de directoare pentru distribuție portabilă.
Cum arată un exemplu de compresie GZIP?
Un document JSON de 1 KB cu multe nume de câmpuri repetitive se comprimă de obicei la aproximativ 200–300 de octeți — o reducere de patru până la cinci ori. Jurnalele text mari se comprimă adesea cu 90% sau mai mult. Intrările care sunt deja comprimate (JPEG, PNG, MP4, ZIP) nu se vor micșora mai mult și pot crește cu câțiva octeți de încadrare GZIP.
Acest compresor GZIP produce ieșire standard RFC 1952 direct în browserul tău. Fie că micșorezi un payload înainte de transmisie sau produci un fișier .gz pentru arhivare, rezultatul interoperază cu fiecare instrument compatibil GZIP din rețea.