Trình chuyển đổi GZIP Stream sang Raw DEFLATE

Việc chuyển đổi luồng GZIP sang định dạng Raw DEFLATE giúp loại bỏ lớp vỏ bọc tệp bên ngoài và siêu dữ liệu tiêu đề, chỉ để lại phần tải trọng được nén cho các giao thức mạng chuyên dụng và các kho lưu trữ cấp thấp.

Chọn hoặc kéo tệp

Chọn hoặc thả tệp vào đây

Chuyển đổi 100% riêng tư trong trình duyệt - tệp không bao giờ rời khỏi thiết bị của bạn

hoặc dán Ctrl+V
Cam kết bảo mật không truyền tải qua mạng: 0 byte được tải lên máy chủ bên ngoài. Toàn bộ quá trình xử lý diễn ra cục bộ trong hộp cát trình duyệt của bạn.

So sánh định dạng & Thông số kỹ thuật

Thông số kỹ thuậtGZIPDEFLATE
Kiểu MIMEapplication/gzipapplication/zlib
LoạiDEFLATE stream containerraw DEFLATE stream
NénDEFLATE (RFC 1951)LZ77 + Huffman coding
Thông số chuẩnIETF RFC 1952IETF RFC 1950 / RFC 1951
Phần đầu Magic Bytes1F 8B (gzip ID1/ID2)78 01 / 78 9C / 78 DA (zlib header bytes)

Tổng quan định dạng & Ứng dụng

Việc chuyển đổi luồng GZIP thành Raw DEFLATE thường diễn ra trong phát triển web, lập trình mạng và quy trình lưu trữ dữ liệu cấp thấp. Các nhà phát triển thường xử lý GZIP khi lưu các tệp đơn lẻ vào đĩa vì định dạng này bao gồm siêu dữ liệu hữu ích như tên tệp gốc và dấu thời gian sửa đổi. Tuy nhiên, các giao thức nén HTTP hiện đại và các định dạng nhị phân cụ thể chỉ mong đợi phần tải trọng được nén mà không có bất kỳ byte bọc nào. Thực hiện việc chuyển đổi này cho phép các kỹ sư đưa dữ liệu nén tiêu chuẩn trực tiếp vào các luồng mạng hoặc các trình phân tích cú pháp tùy chỉnh. Ví dụ, việc xây dựng trình xử lý phản hồi HTTP tùy chỉnh hoặc làm việc với các kho lưu trữ ZIP thường đòi hỏi phải loại bỏ tiêu đề GZIP và phần chân trang CRC32 để cách ly đầu ra thuật toán thô. Việc loại bỏ dữ liệu vùng chứa bổ sung này làm giảm chi phí chung khi từng byte riêng lẻ đều quan trọng trong các môi trường lập trình bị hạn chế.

Thông số kỹ thuật & Phân tích codec

Một luồng GZIP được xác định bởi loại MIME application/gzip sử dụng cấu trúc vùng chứa được định nghĩa trong RFC 1952. Nó bắt đầu bằng tiêu đề số phép thuật hai byte (0x1F, 0x8B), tiếp theo là các cờ nén, thời gian sửa đổi, ID hệ điều hành và tên tệp tùy chọn. Dữ liệu nén thực tế nằm ở giữa, và tệp kết thúc bằng tổng kiểm tra CRC32 bốn byte và chỉ báo kích thước chưa nén bốn byte. Ngược lại, Raw DEFLATE được xác định bởi application/zlib hoặc các luồng thô dựa trên RFC 1951. Nó không chứa byte phép thuật, không có tiêu đề và không có chân trang. Nó sử dụng thuật toán LZ77 kết hợp với mã hóa Huffman để lưu trữ trực tiếp các khối nén. Việc chuyển đổi giữa chúng hoàn toàn không bị mất mát, vì cả hai định dạng đều sử dụng cùng một động cơ nén DEFLATE chính xác. Quá trình chuyển đổi đơn giản là mở cuộn trình bao bọc GZIP, loại bỏ siêu dữ liệu và trích xuất luồng byte DEFLATE bên trong.

Khả năng tương thích hệ điều hành & trình duyệt

Các luồng Raw DEFLATE chạy tự nhiên trên các hệ điều hành hiện đại và thời gian chạy web thông qua các ngôn ngữ lập trình tiêu chuẩn như Python, Node.js và C++. Các trình duyệt xử lý DEFLATE một cách tự nhiên thông qua ngăn xếp tiêu đề mã hóa nội dung HTTP. Các hệ điều hành như Windows, macOS và Linux hỗ trợ các luồng thô thông qua các thư viện nén hệ thống như zlib. Các nền tảng di động bao gồm Android và iOS cung cấp quyền truy cập API trực tiếp vào các quy trình DEFLATE cho các lớp lưu trữ ứng dụng tùy chỉnh.

💡 Thông tin hữu ích

Luôn xác minh rằng trình phân tích cú pháp đích của bạn mong đợi một luồng RFC 1951 thuần túy thay vì một luồng được bọc zlib, bởi vì zlib bổ sung tiêu đề hai byte mà các trình phân tích cú pháp raw DEFLATE sẽ từ chối.

So sánh định dạng & Thông số kỹ thuật

Một tệp văn bản dung lượng 10 megabyte được nén thành luồng GZIP thu nhỏ lại còn khoảng 2 megabyte. Việc loại bỏ tiêu đề và chân trang để tạo tệp Raw DEFLATE mang lại kích thước tải trọng 2 megabyte giống hệt. Việc truyền tệp 2 megabyte này mất khoảng 0,04 giây trên kết nối cáp quang 500 Mbps, khoảng 0,4 giây trên mạng 5G tiêu chuẩn và khoảng 4 giây trên liên kết di động 4G bị nghẽn.

Câu hỏi thường gặp

Làm thế nào để chuyển đổi GZIP Stream sang Raw DEFLATE mà không làm giảm chất lượng?

Cả hai định dạng đều sử dụng các thuật toán nén không mất mát giống hệt nhau. Việc chuyển đổi chúng đơn giản có nghĩa là đọc vùng chứa GZIP, loại bỏ tiêu đề mười byte và chân trang tám byte, và lưu các khối nén bên trong. Không có dữ liệu nào bị mất vì thuật toán cơ bản vẫn không thay đổi.

Sự khác biệt giữa GZIP Stream và Raw DEFLATE là gì?

GZIP là một vùng chứa tệp hoàn chỉnh bao gồm tiêu đề byte phép thuật, tên tệp gốc, dấu thời gian sửa đổi và chân trang tổng kiểm tra. Raw DEFLATE chỉ là bản thân dữ liệu nén, không chứa tiêu đề, chân trang hoặc siêu dữ liệu tệp.