2009-03-29 6 views
6

एक HTTP सर्वर क्लाइंट के Accept-Encoding शीर्षलेख के आधार पर एक एकल URL पहचान- या gzip-encoded की सेवा के लिए सामग्री-वार्ता का उपयोग करता है।HTTP प्रॉक्सी कैश पहचान-बनाम gzip-encoded संसाधनों की सेवा के बीच कैसे निर्णय लेते हैं?

अब कहें कि हमारे पास क्लाइंट और httpd के बीच स्क्विड जैसे प्रॉक्सी कैश हैं।

यदि प्रॉक्सी ने यूआरएल के दोनों एन्कोडिंग को कैश किया है, तो यह कैसे निर्धारित करता है कि कौन से सेवा करना है?

गैर gzip उदाहरण (मूल रूप से Vary के साथ परोसा नहीं) किसी भी ग्राहक के लिए कार्य किया जा सकता है लेकिन इनकोडिंग उदाहरणों (होने Vary: Accept-Encoding) केवल एक ग्राहकों को समान Accept-Encoding हैडर मूल्य के साथ के रूप में इस्तेमाल किया गया था भेजा जा सकता है मूल अनुरोध

उदा। ओपेरा "deflate, gzip, x-gzip, identity, *;q=0" भेजता है लेकिन आईई 8 "gzip, deflate" भेजता है। कल्पना के अनुसार, कैश को दो ब्राउज़रों के बीच सामग्री-एन्कोडेड कैश साझा नहीं करना चाहिए। क्या ये सच है?

उत्तर

7

सबसे पहले, यह IMHO गलत है "Vary: Accept-Encoding" भेजने के लिए गलत नहीं है जब इकाई वास्तव में उस शीर्षलेख (या इसकी अनुपस्थिति) से भिन्न होती है।

कहा जा रहा है कि वर्तमान में स्पेस वास्तव में ओपेरा को कैश प्रतिक्रिया की सेवा करने की अनुमति नहीं देता है, क्योंकि वेरी हेडर HTTPbis, Part 6, Section 2.6 में परिभाषाओं से मेल नहीं खाता है। शायद यह एक ऐसा क्षेत्र है जहां हमें कैश के लिए आवश्यकताओं को आराम करना चाहिए (आप IETF HTTP mailing list पर अनुसरण करना चाहेंगे ...

अपडेट: यह पता चला है कि यह पहले से ही एक खुले प्रश्न के रूप में चिह्नित किया गया था; मैंने अभी एक मुद्दा जोड़ा इसके लिए हमारे समस्या ट्रैकर, Issue 147 देख

1

जूलियन सही है, निश्चित रूप सबक की:।। जब Accept-Encoding सूँघने, कोई बात नहीं क्या प्रतिक्रिया एन्कोडिंग हमेशा Vary: Accept-Encoding भेज

मेरे सवाल का जवाब करने के लिए, अगर आप गलती से। Vary बाहर निकलें, अगर प्रॉक्सी को गैर-एन्कोडेड रेसो प्राप्त होता है एनएसई (Vary के बिना), यह आसानी से कैश कर सकता है और प्रत्येक बाद के अनुरोध के लिए इसे वापस कर सकता है (Accept-Encoding को अनदेखा कर रहा है)। Squid does this

1

वेरी छोड़ने के साथ बड़ी समस्या यह है कि यदि कैश को वेरी के बिना एन्कोडेड संस्करण प्राप्त होता है तो यह अन्य अनुरोधों के जवाब में इसे भेज सकता है भले ही उनके स्वीकृति-एन्कोडिंग इंगित करता है कि ग्राहक सामग्री को समझ नहीं सकता है।

संबंधित मुद्दे