GZIP ಕಂಪ್ರೆಷನ್ ಎಂದರೇನು?
GZIP RFC 1952 ನಿಂದ ವ್ಯಾಖ್ಯಾನಿಸಲ್ಪಟ್ಟ ನಷ್ಟರಹಿತ ಕಂಪ್ರೆಷನ್ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್. ಇದು DEFLATE ಅಲ್ಗಾರಿದಮ್ (RFC 1951) ನಿಂದ ಉತ್ಪಾದಿಸಲ್ಪಟ್ಟ ಪೇಲೋಡ್ ಅನ್ನು ಸುತ್ತುತ್ತದೆ, ಇದು ಪುನರಾವರ್ತಿತ ಡೇಟಾವನ್ನು ಕಾಂಪ್ಯಾಕ್ಟ್ ಬೈಟ್ ಸ್ಟ್ರೀಮ್ಗೆ ಕುಗ್ಗಿಸಲು LZ77 ಬ್ಯಾಕ್-ರೆಫರೆನ್ಸ್ಗಳನ್ನು Huffman ಕೋಡಿಂಗ್ನೊಂದಿಗೆ ಸಂಯೋಜಿಸುತ್ತದೆ.
GZIP ಕಂಪ್ರೆಷನ್ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ?
ನಿಮ್ಮ ಇನ್ಪುಟ್ ಸ್ಥಳೀಯ CompressionStream('gzip') API ಬಳಸಿ ಸಂಪೂರ್ಣ ನಿಮ್ಮ ಬ್ರೌಸರ್ನಲ್ಲಿ ಪ್ರಕ್ರಿಯೆ ಮಾಡಲ್ಪಡುತ್ತದೆ. ಉನ್ನತ ಹಂತದ ಹಂತಗಳು:
- ಉಪಕರಣ ನಿಮ್ಮ ಟೆಕ್ಸ್ಟ್ ಅಥವಾ ಫೈಲ್ ಅನ್ನು ಬೈಟ್ಗಳ ಸ್ಟ್ರೀಮ್ಗೆ ಪರಿವರ್ತಿಸುತ್ತದೆ (ಟೆಕ್ಸ್ಟ್ ಇನ್ಪುಟ್ಗೆ UTF-8).
- ಆ ಬೈಟ್ಗಳನ್ನು
gzipಫಾರ್ಮ್ಯಾಟ್ಗೆ ಕಾನ್ಫಿಗರ್ ಮಾಡಿದCompressionStreamಮೂಲಕ ಹಾಯಿಸಲಾಗುತ್ತದೆ. - ಬ್ರೌಸರ್ DEFLATE ಅನ್ವಯಿಸುತ್ತದೆ: ಸ್ಲೈಡಿಂಗ್-ವಿಂಡೋ LZ77 ಪಾಸ್ ಪುನರಾವರ್ತಿತ ಸೀಕ್ವೆನ್ಸ್ಗಳನ್ನು ಕಂಡುಕೊಂಡು, Huffman ಕೋಡಿಂಗ್ ಸಾಮಾನ್ಯ ಚಿಹ್ನೆಗಳಿಗೆ ಚಿಕ್ಕ ಕೋಡ್ ನಿಯೋಜಿಸುತ್ತದೆ.
- 10-ಬೈಟ್ gzip ಹೆಡರ್ ಮತ್ತು 8-ಬೈಟ್ ಫೂಟರ್ DEFLATE ಪೇಲೋಡ್ ಸುತ್ತ ಸುತ್ತಲ್ಪಡುತ್ತದೆ, ಮಾನಕ .gz ಕಂಟೈನರ್ ಉತ್ಪಾದಿಸುತ್ತದೆ.
- ಫಲಿತಾಂಶ ಟೆಕ್ಸ್ಟ್ ಇನ್ಪುಟ್ಗೆ Base64 ಅಥವಾ hex ಆಗಿ ರೆಂಡರ್ ಮಾಡಲ್ಪಡುತ್ತದೆ, ಅಥವಾ ಬೈನರಿ ಇನ್ಪುಟ್ಗೆ ಡೌನ್ಲೋಡ್ ಮಾಡಬಹುದಾದ .gz ಫೈಲ್ ಆಗಿ ನೀಡಲ್ಪಡುತ್ತದೆ.
GZIP ನೊಂದಿಗೆ ಕಂಪ್ರೆಸ್ ಏಕೆ ಮಾಡಬೇಕು?
- ಚಿಕ್ಕ ಪೇಲೋಡ್ಗಳು: ಟೆಕ್ಸ್ಟ್, JSON, HTML, CSS, ಮತ್ತು ಸೋರ್ಸ್ ಕೋಡ್ ಸಾಮಾನ್ಯವಾಗಿ ಮೂಲ ಗಾತ್ರದ ಒಂದು ಭಾಗಕ್ಕೆ ಕುಗ್ಗುತ್ತವೆ.
- ಉದ್ಯಮ ಮಾನದಂಡ: GZIP ಅನ್ನು ಪ್ರಾಯೋಗಿಕವಾಗಿ ಪ್ರತಿ HTTP ಸರ್ವರ್, CDN, ಬ್ರೌಸರ್, ಆರ್ಕೈವ್ ಉಪಕರಣ ಮತ್ತು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷಾ ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಲೈಬ್ರರಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತದೆ.
- ಗೌಪ್ಯತೆ: ಕಂಪ್ರೆಷನ್ ಸಂಪೂರ್ಣ ನಿಮ್ಮ ಬ್ರೌಸರ್ನಲ್ಲಿ ಆಗುತ್ತದೆ. ಇನ್ಪುಟ್ ಎಂದಿಗೂ ನಮ್ಮ ಸರ್ವರ್ಗಳನ್ನು ತಲುಪುವುದಿಲ್ಲ.
- ರೌಂಡ್-ಟ್ರಿಪ್ ರೆಡಿ: ಔಟ್ಪುಟ್
gunzipCLI ನೊಂದಿಗೆ, HTTPContent-Encoding: gzipನೊಂದಿಗೆ, ಮತ್ತು Python, Node.js, Go, Java, ಅಥವಾ Rust ನಲ್ಲಿ ಯಾವುದೇ RFC 1952 ರೀಡರ್ ನೊಂದಿಗೆ ಡಿಕಂಪ್ರೆಸ್ ಮಾಡುತ್ತದೆ.
GZIP ಕಂಪ್ರೆಷನ್ನ ಸಾಮಾನ್ಯ ಅನ್ವಯಗಳು ಯಾವುವು?
GZIP ವೆಬ್ನಾದ್ಯಂತ ಮತ್ತು ಕಮಾಂಡ್-ಲೈನ್ ಟೂಲಿಂಗ್ನಲ್ಲಿ ಬಳಸಲ್ಪಡುತ್ತದೆ:
- HTTP ಟ್ರಾನ್ಸ್ಫರ್: ವೆಬ್ ಸರ್ವರ್ಗಳು ಪೇಜ್ಗಳು ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ವೇಗವಾಗಿ ಲೋಡ್ ಆಗಲು GZIP ನೊಂದಿಗೆ ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಕಂಪ್ರೆಸ್ ಮಾಡುತ್ತವೆ.
- ಲಾಗ್ ಆರ್ಕೈವಲ್: ದೀರ್ಘಕಾಲಿಕ ಸರ್ವರ್ ಲಾಗ್ಗಳನ್ನು ಡಿಸ್ಕ್ ಬಳಕೆ ಕಡಿಮೆ ಮಾಡಲು .gz ಫೈಲ್ಗಳಾಗಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ.
- ಬ್ಯಾಕಪ್ಗಳು ಮತ್ತು ಬಂಡಲ್ಗಳು: ಟಾರ್ಬಾಲ್ಗಳು (.tar.gz) ಪೋರ್ಟಬಲ್ ಡಿಸ್ಟ್ರಿಬ್ಯೂಷನ್ಗಾಗಿ ಇಡೀ ಡೈರೆಕ್ಟರಿ ಟ್ರೀ ಕಂಪ್ರೆಸ್ ಮಾಡುತ್ತವೆ.
GZIP ಕಂಪ್ರೆಷನ್ ಉದಾಹರಣೆ ಹೇಗಿರುತ್ತದೆ?
ಅನೇಕ ಪುನರಾವರ್ತಿತ ಫೀಲ್ಡ್ ಹೆಸರುಗಳಿರುವ 1 KB JSON ದಾಖಲೆ ಸಾಮಾನ್ಯವಾಗಿ 200–300 ಬೈಟ್ಗಳಿಗೆ ಕಂಪ್ರೆಸ್ ಮಾಡುತ್ತದೆ — ನಾಲ್ಕರಿಂದ ಐದು ಪಟ್ಟು ಗಾತ್ರ ಕಡಿತ. ದೊಡ್ಡ ಟೆಕ್ಸ್ಟ್ ಲಾಗ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ 90% ಅಥವಾ ಹೆಚ್ಚು ಕಂಪ್ರೆಸ್ ಮಾಡುತ್ತವೆ. ಈಗಾಗಲೇ ಕಂಪ್ರೆಸ್ ಮಾಡಿದ ಇನ್ಪುಟ್ಗಳು (JPEG, PNG, MP4, ZIP) ಮತ್ತಷ್ಟು ಕುಗ್ಗುವುದಿಲ್ಲ.
ಈ GZIP ಕಂಪ್ರೆಸರ್ ಮಾನಕ RFC 1952 ಔಟ್ಪುಟ್ ನೇರವಾಗಿ ನಿಮ್ಮ ಬ್ರೌಸರ್ನಲ್ಲಿ ಉತ್ಪಾದಿಸುತ್ತದೆ. ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ಪ್ರಸಾರದ ಮೊದಲು ಪೇಲೋಡ್ ಕುಗ್ಗಿಸುತ್ತಿರಲಿ ಅಥವಾ ಆರ್ಕೈವ್ಗೆ .gz ಫೈಲ್ ಉತ್ಪಾದಿಸುತ್ತಿರಲಿ, ಫಲಿತಾಂಶ ನೆಟ್ವರ್ಕ್ನ ಪ್ರತಿ GZIP-ಅರಿಯುವ ಉಪಕರಣದೊಂದಿಗೆ ಸಹಕರಿಸುತ್ತದೆ.