GZIP ਕੰਪ੍ਰੈਸ਼ਨ ਕੀ ਹੈ?
GZIP RFC 1952 ਦੁਆਰਾ ਪਰਿਭਾਸ਼ਿਤ ਇੱਕ ਨੁਕਸਾਨ-ਰਹਿਤ ਕੰਪ੍ਰੈਸ਼ਨ ਫਾਈਲ ਫਾਰਮੈਟ ਹੈ। ਇਹ DEFLATE ਐਲਗੋਰਿਦਮ (RFC 1951) ਦੁਆਰਾ ਤਿਆਰ ਕੀਤੇ ਪੇਲੋਡ ਨੂੰ ਲਪੇਟਦਾ ਹੈ, ਜੋ LZ77 ਬੈਕ-ਰੈਫਰੈਂਸ ਅਤੇ Huffman ਕੋਡਿੰਗ ਨੂੰ ਜੋੜਦਾ ਹੈ।
GZIP ਕੰਪ੍ਰੈਸ਼ਨ ਕਿਵੇਂ ਕੰਮ ਕਰਦੀ ਹੈ?
ਤੁਹਾਡਾ ਇਨਪੁੱਟ ਮੂਲ CompressionStream('gzip') API ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪੂਰੀ ਤਰ੍ਹਾਂ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਪ੍ਰੋਸੈਸ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਉੱਚ-ਪੱਧਰੀ ਕਦਮ ਹਨ:
- ਸਾਧਨ ਤੁਹਾਡੇ ਟੈਕਸਟ ਜਾਂ ਫਾਈਲ ਨੂੰ ਬਾਈਟਾਂ ਦੀ ਸਟ੍ਰੀਮ ਵਿੱਚ ਬਦਲਦਾ ਹੈ (ਟੈਕਸਟ ਇਨਪੁੱਟ ਲਈ UTF-8)।
- ਉਹ ਬਾਈਟ
gzipਫਾਰਮੈਟ ਲਈ ਕੌਂਫਿਗਰ ਕੀਤੀCompressionStreamਰਾਹੀਂ ਦਿੱਤੇ ਜਾਂਦੇ ਹਨ। - ਬ੍ਰਾਊਜ਼ਰ DEFLATE ਲਾਗੂ ਕਰਦਾ ਹੈ: ਇੱਕ ਸਲਾਈਡਿੰਗ-ਵਿੰਡੋ LZ77 ਪਾਸ ਦੁਹਰਾਈਆਂ ਕ੍ਰਮਾਂ ਲੱਭਦਾ ਹੈ, ਅਤੇ Huffman ਕੋਡਿੰਗ ਆਮ ਚਿੰਨ੍ਹਾਂ ਨੂੰ ਛੋਟੇ ਕੋਡ ਨਿਰਧਾਰਿਤ ਕਰਦੀ ਹੈ।
- ਇੱਕ 10-ਬਾਈਟ gzip ਹੈਡਰ ਅਤੇ ਇੱਕ 8-ਬਾਈਟ ਫੁੱਟਰ (ਅਸਲ ਡੇਟਾ ਦਾ CRC32 ਅਤੇ ਅਸਲ ਲੰਬਾਈ 2^32 ਮੋਡੂਲੋ) 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 ਫਾਈਲਾਂ ਵਜੋਂ ਸਟੋਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ।
- ਬੈਕਅੱਪ ਅਤੇ ਬੰਡਲ: tarball (.tar.gz) ਪੋਰਟੇਬਲ ਵੰਡ ਲਈ ਪੂਰੇ ਡਾਇਰੈਕਟਰੀ ਟ੍ਰੀ ਕੰਪ੍ਰੈਸ ਕਰਦੇ ਹਨ।
GZIP ਕੰਪ੍ਰੈਸ਼ਨ ਉਦਾਹਰਣ ਕਿਹੋ ਜਿਹੀ ਦਿੱਖਦੀ ਹੈ?
ਕਈ ਦੁਹਰਾਏ ਫੀਲਡ ਨਾਵਾਂ ਵਾਲਾ 1 KB JSON ਦਸਤਾਵੇਜ਼ ਆਮ ਤੌਰ ਤੇ ਲਗਭਗ 200–300 ਬਾਈਟ ਤੱਕ ਕੰਪ੍ਰੈਸ ਹੁੰਦਾ ਹੈ — ਚਾਰ ਤੋਂ ਪੰਜ ਗੁਣਾ ਆਕਾਰ ਘੱਟ। ਵੱਡੇ ਟੈਕਸਟ ਲੌਗ ਅਕਸਰ 90% ਜਾਂ ਵੱਧ ਕੰਪ੍ਰੈਸ ਹੁੰਦੇ ਹਨ। ਜੋ ਇਨਪੁੱਟ ਪਹਿਲਾਂ ਤੋਂ ਕੰਪ੍ਰੈਸ ਹਨ (JPEG, PNG, MP4, ZIP) ਹੋਰ ਨਹੀਂ ਸੁੰਗੜਨਗੇ।
ਇਹ GZIP ਕੰਪ੍ਰੈਸਰ ਸਿੱਧੇ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਮਿਆਰੀ RFC 1952 ਆਉਟਪੁੱਟ ਤਿਆਰ ਕਰਦਾ ਹੈ। ਭਾਵੇਂ ਤੁਸੀਂ ਪ੍ਰਸਾਰਣ ਤੋਂ ਪਹਿਲਾਂ ਪੇਲੋਡ ਸੁੰਗੜ ਰਹੇ ਹੋ ਜਾਂ ਆਰਕਾਈਵਲ ਲਈ .gz ਫਾਈਲ ਤਿਆਰ ਕਰ ਰਹੇ ਹੋ, ਨਤੀਜਾ ਨੈੱਟਵਰਕ ਤੇ ਹਰ GZIP-ਜਾਣੂ ਸਾਧਨ ਨਾਲ ਕੰਮ ਕਰਦਾ ਹੈ।