🎧 Listen to this article: English
🌍 Read this in your language: हिंदी · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · ଓଡ଼ିଆ · 日本語 · 中文
உங்கள் உலாவியின் network tab-ஐத் திறந்தால், நீங்கள் அடிக்கடி காண்பீர்கள் Cache-Control மற்றும் ETag படங்கள், ஸ்டைல்ஷீட்கள் மற்றும் ஸ்கிரிப்ட்களின் ரெஸ்பான்ஸ் ஹெடர்களில் (response headers). பல டெவலப்பர்கள் இந்த சொற்களை அறிந்திருந்தாலும், caching-ல் அவை எவ்வாறு இணைந்து செயல்படுகின்றன என்பதைச் சிலரால் மட்டுமே விளக்க முடியும். டெவலப்பர்களுக்கு இணையச் செயல்திறன் தொடர்ந்து முன்னுரிமையாக இருப்பதால், இந்த ஹெடர்களைப் புரிந்துகொள்வது முக்கியமாகும்.
HTTP Caching என்றால் என்ன?
HTTP caching ஆனது உலாவி அல்லது ஒரு Content Delivery Network (CDN) தான் பெற்ற படம் அல்லது ஸ்கிரிப்ட் போன்ற ரெஸ்பான்ஸை சேமிக்க அனுமதிக்கிறது. அதே வளத்திற்காக மீண்டும் சேவையகத்திடம் (server) கேட்பதற்குப் பதிலாக, உலாவி சேமிக்கப்பட்ட பதிப்பையே மீண்டும் பயன்படுத்தலாம். இது பக்கம் ஏற்றப்படும் நேரத்தை வேகப்படுத்துகிறது மற்றும் சேவையகத்தின் சுமையைக் குறைக்கிறது. இருப்பினும், சரியான வழிமுறைகள் இல்லாமல், தேக்ககப்படுத்தப்பட்ட (cached) ரெஸ்பான்ஸ் இன்னும் செல்லுபடியாகும் என்று உலாவிகள் ஊகிக்கக்கூடும், இது முரண்பாடுகளுக்கு வழிவகுக்கும்.
இந்த ஹெடர்கள் தீர்க்கும் பிரச்சனை
Cache-Control மற்றும் ETag சேவையகத்திலிருந்து தெளிவான வழிமுறைகளை வழங்குவதன் மூலம் யூகங்களை அகற்ற உதவுகின்றன. அவை இரண்டு வெவ்வேறு கேள்விகளுக்குப் பதிலளிக்கின்றன:
- Cache-Control: "முற்றிலுமாக என்னிடம் கேட்பதை நீங்கள் எவ்வளவு காலம் தவிர்க்கலாம்?"
- ETag: "அந்தக் காலக்கெடு முடிந்தவுடன், ஏதேனும் உண்மையில் மாறியுள்ளதா என்பதை எவ்வாறு மலிவாகச் சரிபார்க்கலாம்?"
Cache-Control எதைக் கட்டுப்படுத்துகிறது
அந்த Cache-Control ஒரு வளத்தை எவ்வளவு காலம் தேக்ககத்தில் (cache) வைக்க முடியும் என்பதற்கான விதிகளை ஹெடர் அமைக்கிறது. எடுத்துக்காட்டாக, சேவையகம் இந்த ஹெடருடன் ஒரு ரெஸ்பான்ஸை அனுப்பினால்:
Cache-Control: public, max-age=2592000, immutable
இதன் பொருள்:
- public: இந்த வளத்தை CDN-கள் போன்ற பகிரப்பட்ட தேக்ககங்கள் உட்பட எந்தவொரு தேக்ககத்தாலும் (cache) சேமிக்க முடியும்.
- max-age=2592000: இந்த வளம் 30 நாட்களுக்கு (2,592,000 வினாடிகள்) புதியதாக இருக்கும். இந்த நேரத்தில், உலாவி சேவையகத்தைத் தொடர்பு கொள்ளத் தேவையில்லை.
- immutable: இந்த புதியதாக இருக்கும் காலத்தில் உள்ளடக்கம் மாறாது, எனவே உலாவி சரிபார்க்காமல் தேக்ககப்படுத்தப்பட்ட பதிப்பைப் பயன்படுத்தலாம்.
பயன்படுத்துவது immutable URL எப்பொழுதும் ஒரே உள்ளடக்கத்தைக் சுட்டிக்காட்டினால் மட்டுமே பாதுகாப்பானது.
ETag எதைக் கட்டுப்படுத்துகிறது
அந்த max-age காலம் முடிவடைந்தவுடன், உலாவி தேக்ககப்படுத்தப்பட்ட நகலை நிராகரிக்காது. அதற்குப் பதிலாக, பழைய நகல் இன்னும் செல்லுபடியாகுமா என்று சேவையகத்திடம் சரிபார்க்கும். இங்குதான் ETag வருகிறது. ஒரு ETag என்பது ஒரு தனித்துவமான அடையாளங்காட்டி, இது பொதுவாக உள்ளடக்கத்தின் ஹாஷ் (hash) ஆகும். உள்ளடக்கம் மாறினால், ETag -ம் மாறும். இது எவ்வாறு செயல்படுகிறது என்பது இங்கே:
- சேவையகம் இதனுடன் பதிலளிக்கும்
ETag, எடுத்துக்காட்டாக,ETag: "abc123". - உலாவி இந்த மதிப்பை நினைவில் கொள்கிறது. தேக்ககப்படுத்தப்பட்ட நகல் காலாவதியாகும் போது, இது பின்வருமாறு ஒரு கோரிக்கையை அனுப்புகிறது
If-None-Match: "abc123". - சேவையகம் தற்போதையதைச் சரிபார்க்கும்
ETag. அது மாறவில்லை என்றால், இவ்வாறு பதிலளிக்கும்304 Not Modified, இது வளத்தை மீண்டும் பதிவிறக்கம் செய்யாமல் உலாவி அதன் தேக்ககப்படுத்தப்பட்ட நகலைத் தொடர்ந்து பயன்படுத்த அனுமதிக்கிறது.
இந்தச் செயல்முறை அலைவரிசையைச் (bandwidth) சேமிக்கிறது மற்றும் ஏற்றப்படும் நேரத்தை வேகப்படுத்துகிறது.
சில ப்ராஜெக்ட்டுகள் ஏன் ETag-ஐத் தவிர்க்கின்றன
சில சமயங்களில், பின்வரும் ப்ராஜெக்ட்டில் இருப்பது போல ogp-generator.php ப்ராஜெக்ட்டில், பயன்படுத்துவது ETag தேவையற்றதாகத் தோன்றலாம். இடுகையின் கடைசியாக மாற்றப்பட்ட நேரத்தின் அடிப்படையில் ஒவ்வொரு படத்திற்கும் இந்த ப்ராஜெக்ட் ஒரு தனித்துவமான கோப்புப் பெயரை (filename) உருவாக்குகிறது. cache busting என்று அழைக்கப்படும் இந்த நுட்பம், இடுகையைத் திருத்தும் போதெல்லாம் URL மாறுவதை உறுதி செய்கிறது. எனவே, இதற்குத் தேவையில்லை ETag ஏனென்றால் உள்ளடக்கம் புதியது என்பதற்கு URL-ஏ உத்தரவாதம் அளிக்கிறது.
முடிவுரை
Cache-Control மற்றும் ETag இரண்டும் வலை உருவாக்கத்தில் caching-ஐ நிர்வகிக்க அவசியமானவை, ஆனால் அவை வெவ்வேறு நோக்கங்களுக்காகச் செயல்படுகின்றன. Cache-Control ஒரு வளம் எவ்வளவு காலம் தேக்ககத்தில் வைக்கப்படும் என்பதை ஆணையிடுகிறது, அதே சமயம் ETag caching காலத்திற்குப் பிறகு உள்ளடக்கம் மாறியுள்ளதா என்பதை உறுதிப்படுத்த உதவுகிறது.
நன்மைகள்
- சேவையகக் கோரிக்கைகளைக் குறைப்பதன் மூலம் இணையச் செயல்திறனை மேம்படுத்துகிறது.
- தேவையற்ற பதிவிறக்கங்களைத் தடுப்பதன் மூலம் அலைவரிசையைச் (bandwidth) சேமிக்கிறது.
- உலாவிகள் மற்றும் CDN-களுக்குத் தெளிவான caching வழிமுறைகளை வழங்குகிறது.
குறைபாடுகள்
- தவறான உள்ளமைவு (Misconfiguration) பழைய உள்ளடக்கம் வழங்கப்படுவதற்கு வழிவகுக்கும்.
- URL-கள் சரியான உள்ளடக்கத்தைச் சுட்டிக்காட்டுவதை உறுதிசெய்ய கவனமான மேலாண்மை தேவை.
எச்சரிக்கை
இந்தக் கட்டுரை கல்வி நோக்கங்களுக்கானது. உங்கள் பயன்பாடுகளில் உள்ள ப்ளேஸ்ஹோல்டர் (placeholder) மதிப்புகளை எப்பொழுதும் உண்மையான தரவுகளுடன் மாற்றவும். எந்தவொரு உரிமைகோரல்களையும் நம்புவதற்கு முன் அசல் மூலத்துடன் சரிபார்க்கவும்.
அடிக்கடி கேட்கப்படும் கேள்விகள்
- Cache-Control என்றால் என்ன? — Cache-Control என்பது ஒரு HTTP ஹெடர் ஆகும், இது ஒரு வளத்தை எவ்வளவு காலம் மற்றும் எந்தெந்த நிபந்தனைகளின் கீழ் தேக்ககத்தில் வைக்கலாம் என்பதைக் குறிப்பிடுகிறது.
- ETag என்பதன் விரிவாக்கம் என்ன? — ETag என்பது Entity Tag என்பதைக் குறிக்கிறது, இது ஒரு வளத்தின் குறிப்பிட்ட பதிப்பிற்கான தனித்துவமான அடையாளங்காட்டி ஆகும்.
- Cache-Control எவ்வாறு செயல்திறனை மேம்படுத்துகிறது? — இது வளங்களைத் தேக்ககப்படுத்த (cache) உலாவிகளை அனுமதிக்கிறது, இதன் மூலம் சேவையகத்திற்குத் திரும்பத் திரும்பக் கோரிக்கைகளை அனுப்புவதன் தேவையைக் குறைக்கிறது.
- நான் எப்போது ETag-ஐப் பயன்படுத்த வேண்டும்? — தேக்ககப்படுத்தப்பட்ட வளம் அதன் புதிய காலத்திற்குப் (freshness period) பிறகு மாறியுள்ளதா என்பதைச் திறம்படச் சரிபார்க்க நீங்கள் விரும்பும்போது ETag-ஐப் பயன்படுத்தவும்.
- cache busting என்றால் என்ன? — Cache busting என்பது ஒரு வளத்தின் உள்ளடக்கம் மாறும் போதெல்லாம் அதன் URL-ஐ மாற்றும் ஒரு நுட்பமாகும், இது பயனர்கள் புதுப்பிக்கப்பட்ட பதிப்பைப் பெறுவதை உறுதி செய்கிறது.
- நான் ETag இல்லாமல் Cache-Control-ஐப் பயன்படுத்தலாமா? — ஆம், நீங்கள் Cache-Control-ஐத் தனியாகப் பயன்படுத்தலாம், ஆனால் ETag ஆனது caching-க்குப் பிறகு உள்ளடக்கத்தின் புதுமையை உறுதிப்படுத்த ஒரு வழியை வழங்குகிறது.
Tags
#http #caching #webdevelopment #performance #etag #cachecontrol #webdesign #frontend #backend #optimization
Prompt-Injection Defense Checklist
The controls that actually reduce the blast radius when your app feeds untrusted text to an LLM. Enter your email — you'll get the PDF instantly, plus new posts on AI, security & Linux.
Free. No spam — unsubscribe in one click.


Responses
Sign in to leave a response.