भारत में मोबाइल डेटा महंगा होने की वजह से कुछ कैरियर नेटवर्क और डेटा-सेवर ब्राउज़र फ़ीचर ट्रैफ़िक को बीच में कंप्रेस करने वाले प्रॉक्सी से गुज़ारते हैं। ऐसे प्रॉक्सी अक्सर Via हेडर जोड़ देते हैं (यह बताते हुए कि रिक्वेस्ट किन-किन इंटरमीडिएट सर्वरों से होकर गुज़री) और कभी-कभी Content-Encoding या इमेज के Content-Type को भी बदल देते हैं — जिससे डेवलपर को लगता है कि सर्वर ग़लत रिस्पॉन्स भेज रहा है, जबकि असल गड़बड़ी बीच के नेटवर्क में होती है।
रिक्वेस्ट हेडर बनाम रिस्पॉन्स हेडर
ब्राउज़र रिक्वेस्ट हेडर (जैसे Accept, User-Agent, Cookie) सर्वर को भेजता है, ख़ुद का और अपनी उम्मीदों का वर्णन करते हुए। सर्वर जवाब में रिस्पॉन्स हेडर (Content-Type, Set-Cookie, Cache-Control) भेजता है, जो लौटाए गए डेटा और ब्राउज़र के लिए निर्देशों का वर्णन करते हैं।
Content-Type ज़रूरी क्यों है
Content-Type हेडर ब्राउज़र को बताता है कि रिस्पॉन्स बॉडी को कैसे समझा जाए: HTML पेज, JSON डेटा, इमेज या डाउनलोड फ़ाइल की तरह। यहाँ सही वैल्यू के बिना, ब्राउज़र JSON को प्लेन टेक्स्ट की तरह दिखाने की कोशिश कर सकता है, या इसका उल्टा, HTML को ग़लत तरीक़े से प्रोसेस कर सकता है।
Cache-Control कैशिंग को कैसे कंट्रोल करता है
max-age=3600 या no-cache जैसी वैल्यू ब्राउज़र और बीच के सर्वर को बताती हैं कि सर्वर से नई रिक्वेस्ट किए बिना किसी रिसोर्स की कैश्ड कॉपी कब तक इस्तेमाल की जा सकती है। इस हेडर की ग़लत सेटिंग यूज़र्स को साइट का पुराना वर्शन दिखने का एक आम कारण है।
यह क्यों ज़रूरी है
- यह डिबग करना कि ब्राउज़र API रिस्पॉन्स को ग़लत तरीक़े से क्यों दिखा रहा है।
- यह पकड़ना कि रिस्पॉन्स में कोई कैरियर कंप्रेशन प्रॉक्सी का जोड़ा हुआ
Viaहेडर मौजूद है या नहीं। - यह कन्फ़र्म करना कि साइट HTTPS पर सर्व हो रही है — इसी साइट के हैश और JWT टूल जिस Web Crypto API पर निर्भर हैं, उसके काम करने की यह अनिवार्य शर्त है।
एक ही हेडर कभी-कभी कई बार क्यों दिखता है
HTTP किसी रिस्पॉन्स में एक ही हेडर को कई बार आने की इजाज़त देता है — सबसे आम उदाहरण है कई Set-Cookie लाइनें, हर सेट होने वाली कुकी के लिए एक। ज़्यादातर बाक़ी दोहराए गए हेडर को बिना मतलब बदले कॉमा से जोड़कर एक वैल्यू बनाया जा सकता है, पर Set-Cookie एक जानबूझकर अपवाद है, क्योंकि कॉमा वैध रूप से कुकी वैल्यू का हिस्सा हो सकता है।