Giải nén GZIP là gì?
GZIP là định dạng nén không mất dữ liệu được định nghĩa bởi RFC 1952. Việc giải nén đảo ngược thuật toán DEFLATE (RFC 1951) — đọc lại các tham chiếu LZ77 và các ký hiệu được mã hoá Huffman để dựng lại chính xác các byte gốc.
Giải nén GZIP hoạt động như thế nào?
Dữ liệu của bạn được xử lý hoàn toàn trong trình duyệt bằng API DecompressionStream('gzip') gốc. Các bước chính như sau:
- Công cụ phân tích đầu vào dưới dạng Base64 hoặc thập lục phân (đối với văn bản) hoặc đọc các byte thô của tệp .gz bạn tải lên.
- Tiêu đề gzip 10 byte được xác thực, phần DEFLATE được nhận diện và phần đuôi 8 byte (CRC32 + độ dài gốc theo modulo 2^32) được giữ lại để xác minh.
- Các byte được đưa qua một
DecompressionStreamđược cấu hình cho định dạnggzip. - Trình duyệt đảo ngược DEFLATE: các mã Huffman được giải mã trở lại thành ký hiệu và các tham chiếu lùi LZ77 được mở rộng thành luồng byte gốc.
- Luồng xác minh CRC32 và phần đuôi độ dài so với các byte đã khôi phục, sau đó xuất ra dưới dạng văn bản UTF-8 ở biểu mẫu văn bản hoặc tệp có thể tải xuống ở biểu mẫu tải lên.
Tại sao dùng công cụ này để giải nén?
- Kiểm tra phản hồi: đọc thân HTTP được mã hoá GZIP và dữ liệu CDN mà các công cụ khác sẽ hiển thị như nhiễu nhị phân.
- Phục hồi kho lưu trữ: trích xuất tệp nhật ký .gz, kết xuất cấu hình và thành phần tarball mà không cần cài thêm phần mềm.
- Quyền riêng tư: việc giải nén diễn ra hoàn toàn trong trình duyệt. Dữ liệu đầu vào không bao giờ đến máy chủ của chúng tôi.
- Tuân thủ chuẩn: chấp nhận mọi luồng RFC 1952 do CLI
gzip, máy chủ HTTP hoặc thư viện chuẩn của Python, Node.js, Go, Java hay Rust tạo ra.
Các ứng dụng phổ biến của giải nén GZIP là gì?
Việc giải nén GZIP xuất hiện rộng rãi trong công việc web và công cụ dòng lệnh:
- Gỡ lỗi API: dán thân phản hồi
Content-Encoding: gzipthô để xem JSON hoặc HTML bên dưới. - Phân tích nhật ký: mở các tệp
.log.gzđã xoay vòng để grep tìm sự kiện mà không cần một quy trình trích xuất đầy đủ. - Xác minh sao lưu: trước khi tin cậy vào một kho lưu trữ .gz do công cụ khác tạo, hãy xác nhận rằng nó giải nén sạch sẽ.
Ví dụ về giải nén GZIP trông như thế nào?
Một chuỗi Base64 dài 200 byte bắt đầu bằng H4sI chính là dấu hiệu chuẩn của tiêu đề gzip — các byte ma thuật 1f 8b mã hoá ra đúng những ký tự đó. Dán chuỗi đó rồi nhấn GIẢI NÉN sẽ tái tạo chính xác văn bản gốc, từng byte một, bao gồm cả khoảng trắng và dấu xuống dòng cuối cùng.
Trình giải nén GZIP này chấp nhận mọi đầu vào RFC 1952 và xuất các byte gốc trực tiếp trong trình duyệt của bạn. Hãy ghép với Trình nén GZIP để xử lý hai chiều văn bản hoặc tệp mà không cần rời khỏi trang.