Αρχειοθήκη GZIP (.gz)

IETF Τυπικό

Το Gzip (GZ) είναι το τυπικό βοηθητικό πρόγραμμα συμπίεσης και ο μορφότυπος αρχείων του GNU, το οποίο αναπτύσσεται σε λειτουργικά συστήματα Unix και διακομιστές ιστού HTTP για γρήγορη συμπίεση αρχείων και στοιχείων ιστού.

Μετατροπή TAR σε GZ

Δωρεάν μετατροπέας από TAR σε GZ εντός του προγράμματος περιήγησης. Μετατρέψτε αρχεία άμεσα στη συσκευή σας.

Επιθεώρηση & Μεταδεδομένα

Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία GZ ελέγχοντας την αρχική δυαδική ακολουθία byte:

Επιλέξτε ή αποθέστε αρχεία εδώ

Ιδιωτικά - τα αρχεία δεν φεύγουν ποτέ από τη συσκευή σας

ή επικόλληση Ctrl+V
Εγγύηση Απορρήτου Μηδενικής Μετάδοσης Δικτύου: Δεν μεταφορτώνεται κανένα byte σε εξωτερικούς διακομιστές. Όλη η επεξεργασία γίνεται τοπικά στο απομονωμένο περιβάλλον του προγράμματος περιήγησής σας.

Υπογραφή κεφαλίδας σε επίπεδο byte (Magic Bytes)

Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία GZ ελέγχοντας την αρχική δυαδική ακολουθία byte:

ΔΕΚΑΕΞΑΔΙΚΗ ΥΠΟΓΡΑΦΗ (OFFSET 0):

1F 8B 08

ΑΝΑΠΑΡΑΣΤΑΣΗ ASCII: ..\x08

Τυποποίηση: IETF RFC 1952

Τεχνικές Προδιαγραφές

Αρχιτεκτονική ΠεριέκτηΚεφαλίδα 10 byte (μαγική τιμή 0x1F 0x8B, μέθοδος 8, σημαίες, mtime, λειτουργικό σύστημα), ακολουθούμενη από ροή DEFLATE και ουρά 8 byte
ΣυμπίεσηΑλγόριθμος DEFLATE (συρόμενο παράθυρο LZ77 + κωδικοποίηση Huffman)
Σειρά byte (endianness)Ακέραιοι κεφαλίδας και ουράς μικρής διάταξης (Little-Endian)
Χρωματικοί ΧώροιN/A (Archive Container)
Κανάλια & ΔομήΣυμπιεσμένη ροή byte ενός αρχείου
Μέγιστες ΔιαστάσειςΤο μη συμπιεσμένο μέγεθος καταγράφεται modulo 2^32 (υποστηρίζονται ροές απεριόριστου μήκους)
Διαφάνεια100% διατήρηση δεδομένων χωρίς απώλειες και με ακρίβεια bit
Ροή δεδομένων και προοδευτική φόρτωσηΣυνεχής μετάδοση δεδομένων σε ένα πέρασμα μέσω σωλήνων και δικτύων HTTP

Τεχνικός Πίνακας Σύγκρισης: GZ έναντι Ανταγωνιστών

Τεχνικό χαρακτηριστικόGZ (Τρέχον)BZ2BROTLIZSTD
Ταχύτητα ΑποσυμπίεσηςΓρήγορη (~300 MB/s)Αργή (~40 MB/s)Πολύ Γρήγορη (~400 MB/s)Εξαιρετικά Γρήγορη (>1.5 GB/s)
Ευρεία χρήση στον ΙστόΕυρεία υποστήριξη σε προγράμματα περιήγησης και διακομιστές· η κωδικοποίηση περιεχομένου διαπραγματεύεται ανά αίτημαΜηδενική υποστήριξη από πρόγραμμα περιήγησηςΥποστηρίζεται μέσω HTTPS σε όλα τα προγράμματα περιήγησηςΑυξανόμενη υποστήριξη σε browser & server
Συσκευασία Πολλαπλών ΑρχείωνΑπαιτεί δοχείο TAR (.tar.gz)Απαιτεί δοχείο TAR (.tar.bz2)Ακατέργαστη ροή ή προσαρμοσμένος περιέκτηςΑπαιτεί δοχείο TAR (.tar.zst)
Επαλήθευση Αθροίσματος ΕλέγχουCRC 32-bit (CRC-32)CRC 32-bit ανά μπλοκΔεν υπάρχει ενσωματωμένο άθροισμα ελέγχου στη ροήxxHash 64-bit

Συνήθεις τρόποι καταστροφής δεδομένων και οδηγός ανάκτησης δεκαεξαδικών δεδομένων

Σφάλμα εξαγωγής: 'gzip: stdin: unexpected end of file'.

Βασική Αιτία: Πρόωρη διακοπή μεταφοράς αρχείου που έκοψε τη ροή DEFLATE ή το υποσέλιδο CRC32 8-byte.

Ανάκτηση: Εξάγετε τμηματικά περιεχόμενα χρησιμοποιώντας την εντολή 'gzip -d --keep broken.gz' ή το File2File.app Gzip Extractor.

Ανάλυση ασφάλειας και διανύσματα επίθεσης στον αναλυτή

Οι αναλύτες Gzip επεξεργάζονται κεφαλίδες που ελέγχονται από τον χρήστη και ροές bit DEFLATE, οι οποίες πρέπει να προστατεύονται από βόμβες αποσυμπίεσης.

Γνωστά διανύσματα επίθεσης

  • Βόμβα αποσυμπίεσης (zip bomb) που επεκτείνει megabyte δεδομένων Gzip σε εκατοντάδες gigabyte χώρου στο δίσκο.
  • Υπερχείλιση buffer (buffer overflow) κατά την ανάγνωση προαιρετικής συμβολοσειράς ονόματος αρχείου από την κεφαλίδα.
  • Υπερχείλιση ακεραίου κατά τη σύγκριση ελέγχου CRC 32-bit.

Βέλτιστες αμυντικές πρακτικές: Επιβολή αυστηρών ορίων αποσυμπίεσης και ορίων ανώτατου ορίου μνήμης σε αυτοματοποιημένες υπηρεσίες λήψης δεδομένων.

Ιστορική Αναδρομή & Ορόσημα

1996Το IETF τυποποιεί την προδιαγραφή του μορφότυπου αρχείων Gzip ως RFC 1952.
1993Υιοθετείται από το GNU Project για να αντικαταστήσει το ιδιόκτητο βοηθητικό πρόγραμμα 'compress' του Unix (αρχεία .Z).
1992Οι Jean-loup Gailly και Mark Adler δημιουργούν το Gzip ως ένα εργαλείο συμπίεσης ελεύθερο από διπλώματα ευρεσιτεχνίας για το κίνημα ελεύθερου λογισμικού.

Κύρια Πλεονεκτήματα

  • Ευρέως υποστηριζόμενη κωδικοποίηση περιεχομένου HTTP, αν και οι πελάτες και οι διακομιστές μπορούν να διαπραγματευτούν άλλες κωδικοποιήσεις ή να μη χρησιμοποιήσουν συμπίεση.
  • Διατηρεί τα αρχικά χρονικά σήματα τροποποίησης αρχείων και τα προαιρετικά αρχικά ονόματα αρχείων εντός της κεφαλίδας 10 byte.
  • Ελαφρύ αποτύπωμα CPU κατά την αποσυμπίεση, εκτελούμενο ομαλά σε κινητές συσκευές χαμηλής ισχύος και δρομολογητές (routers).

Τεχνικοί Περιορισμοί & Μειονεκτήματα

  • Συμπίεση μόνο ενός αρχείου: δεν μπορεί να συμπιέσει πολλαπλά αρχεία ή καταλόγους χωρίς πρώτα να τα ομαδοποιήσει σε ένα δοχείο TAR.
  • Ο λόγος συμπίεσης είναι χαμηλότερος από σύγχρονους αλγορίθμους όπως το Brotli και το Zstandard σε σύγχρονο κείμενο ιστού.
  • Το πεδίο μεγέθους μη συμπιεσμένων δεδομένων στο υποσέλιδο είναι 32-bit modulo 2^32, προκαλώντας σφάλματα εμφάνισης υπερχείλισης (rollover) σε αρχεία μεγαλύτερα από 4 GB.

Ενδιαφέροντα Τεχνικά Στοιχεία

  • Τα μαγικά byte 0x1F 0x8B επιλέχθηκαν επειδή το 0x1F ήταν ιστορικά το πρώτο byte των αρχείων 'compress' του Unix, ενώ το 0x8B ταυτοποιούσε το Gzip.
  • Το Gzip εξακολουθεί να αποτελεί συνήθη επιλογή για τη συμπίεση αποκρίσεων ιστού· η χρήση του ποικίλλει ανά ιστότοπο και απόκριση.
  • Ο Jean-loup Gailly έγραψε τον κώδικα συμπίεσης ενώ ο Mark Adler έγραψε τον κώδικα αποσυμπίεσης (inflate). Και οι δύο έλαβαν το βραβείο ACM Software System Award.

Συχνές Τεχνικές Ερωτήσεις

Γιατί δεν μπορώ να συμπιέσω έναν φάκελο με το Gzip;

Το Gzip σχεδιάστηκε για να συμπιέζει μια ενιαία ροή byte. Για να συμπιέσουν έναν φάκελο, τα συστήματα Unix πρώτα ομαδοποιούν τον φάκελο σε ένα ενιαίο αρχείο .tar και στη συνέχεια τον συμπιέζουν με Gzip για να δημιουργήσουν ένα αρχείο .tar.gz.

Ποια είναι η διαφορά μεταξύ .gz και .zip;

Το .zip είναι μια μορφή αρχειοθήκης που πακετάρει πολλαπλά αρχεία μαζί με ένα ευρετήριο καταλόγου. Το .gz συμπιέζει μόνο ένα μεμονωμένο αρχείο και συνήθως συνδυάζεται με το tar σε συστήματα Unix.

Πώς μπορώ να αποσυμπιέσω ένα αρχείο .gz σε Windows ή Mac;

Χρησιμοποιήστε το File2File.app για να αποσυμπιέσετε άμεσα αρχεία .gz απευθείας στο πρόγραμμα περιήγησής σας χωρίς καμία εγκατάσταση λογισμικού.