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 లేదా హెక్స్గా రెండర్ చేయబడుతుంది, లేదా బైనరీ ఇన్పుట్ కోసం డౌన్లోడ్ చేయదగిన .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 ఫైళ్ళుగా నిల్వ చేయబడతాయి.
- బ్యాకప్లు మరియు బండిళ్ళు: tarballs (.tar.gz) పోర్టేబుల్ డిస్ట్రిబ్యూషన్ కోసం మొత్తం డైరెక్టరీ ట్రీలను కంప్రెస్ చేస్తాయి.
GZIP కంప్రెషన్ ఉదాహరణ ఎలా కనిపిస్తుంది?
చాలా పునరావృత ఫీల్డ్ పేర్లతో కూడిన 1 KB JSON డాక్యుమెంట్ సాధారణంగా దాదాపు 200–300 బైట్లకు కంప్రెస్ అవుతుంది — నాలుగు నుండి ఐదు రెట్లు సైజు తగ్గింపు. పెద్ద వచన లాగ్లు తరచుగా 90% లేదా అంతకంటే ఎక్కువ కంప్రెస్ అవుతాయి. ఇప్పటికే కంప్రెస్ చేయబడిన ఇన్పుట్లు (JPEG, PNG, MP4, ZIP) మరింత తగ్గవు మరియు కొన్ని బైట్ GZIP ఫ్రేమింగ్ వల్ల పెరగవచ్చు.
ఈ GZIP కంప్రెసర్ మీ బ్రౌజర్లో నేరుగా స్టాండర్డ్ RFC 1952 అవుట్పుట్ తయారు చేస్తుంది. మీరు ట్రాన్స్మిషన్ ముందు పేలోడ్ తగ్గిస్తున్నా లేదా ఆర్కైవల్ కోసం .gz ఫైల్ తయారు చేస్తున్నా, ఫలితం నెట్వర్క్లో ప్రతి GZIP-అవేర్ టూల్తో ఇంటెరాపరేట్ అవుతుంది.