कैश-कंट्रोल में निजी बनाम सार्वजनिक


127

क्या आप IIS में होस्ट किए गए asp.net एप्लिकेशन में सार्वजनिक और निजी कैश-कंट्रोल के बीच अंतर को इंगित करने वाले एक उदाहरण का वर्णन कर सकते हैं।

मैंने MSDN में पढ़ा कि अंतर निम्नलिखित है:

सार्वजनिक: सेट कैश-नियंत्रण: सार्वजनिक यह निर्दिष्ट करने के लिए कि प्रतिक्रिया ग्राहकों द्वारा साझा की गई है और साझा (प्रॉक्सी) कैश है।

निजी: डिफ़ॉल्ट मान। कैश-नियंत्रण सेट करता है: यह निर्दिष्ट करने के लिए निजी कि ग्राहक पर केवल प्रतिक्रिया करने योग्य है और साझा (प्रॉक्सी सर्वर) कैश द्वारा नहीं।

मुझे यकीन नहीं है कि मैंने प्रत्येक विकल्प से पेशेवरों और विपक्षों को पूरी तरह से समझा है। इसका उपयोग कब करना है या नहीं करना इसके लिए एक उदाहरण है।

उदाहरण के लिए मुझे क्या करना चाहिए अगर मेरे पास एक ही एप्लिकेशन होस्ट करने वाले दो वेब सर्वर हैं? क्या मुझे निजी या सार्वजनिक चुनने के लिए कुछ देखना है?

जवाबों:


237

एकमात्र अंतर यह है कि निजी के साथ आप प्रॉक्सी को उन डेटा को कैश करने की अनुमति नहीं दे रहे हैं जो उनके माध्यम से यात्रा करते हैं। अंत में, यह आपके द्वारा भेजे जा रहे पन्नों / फाइलों में निहित डेटा को उबालता है।

उदाहरण के लिए, आपका आईएसपी आपके और इंटरनेट के बीच एक अदृश्य प्रॉक्सी हो सकता है, जो कि आवश्यक और कम लागत वाले बैंडविड्थ की मात्रा को कम करने के लिए वेब पृष्ठों को कैशिंग कर रहा है। कैश-कंट्रोल का उपयोग करके: निजी, आप यह निर्दिष्ट कर रहे हैं कि यह पेज कैश नहीं होना चाहिए (लेकिन अंतिम उपयोगकर्ता को ऐसा करने की अनुमति देता है)। यदि आप कैश-कंट्रोल का उपयोग करते हैं: सार्वजनिक, आप कह रहे हैं कि पेज को कैश करना सभी के लिए ठीक है, और इसलिए प्रॉक्सी एक प्रति रखेगा।

अंगूठे के एक नियम के रूप में, अगर यह कुछ है जो हर कोई एक्सेस कर सकता है (उदाहरण के लिए, इस पृष्ठ में लोगो) कैश-नियंत्रण: सार्वजनिक बेहतर हो सकता है, क्योंकि जितने अधिक लोग इसे कैश करते हैं, आपको कम बैंडविड्थ की आवश्यकता होगी। यदि यह ऐसा कुछ है जो जुड़े हुए उपयोगकर्ता से संबंधित है (उदाहरण के लिए, इस पृष्ठ में HTML में मेरा उपयोगकर्ता नाम शामिल है, तो यह किसी और के लिए उपयोगी नहीं होगा) कैश-नियंत्रण: निजी बेहतर होगा, क्योंकि प्रॉक्सी डेटा कैशिंग होगा अन्य उपयोगकर्ताओं द्वारा अनुरोध नहीं किया जाएगा, और वे उन डेटा को भी रख सकते हैं जिन्हें आप उन सर्वरों में नहीं रखना चाहते हैं जिन पर आपको भरोसा नहीं है।

और, ज़ाहिर है, जो कुछ भी सार्वजनिक नहीं है, वह एक निजी कैश होना चाहिए। अन्यथा डेटा को एक मध्य प्रॉक्सी सर्वर में संग्रहीत किया जा सकता है, क्या इसे किसी के द्वारा एक्सेस किया जा सकता था।


39
एकमात्र अंतर यह है कि निजी के साथ आप प्रॉक्सी को कैश करने की अनुमति नहीं दे रहे हैं ... मुझे लगता है कि यह एक टाइपो था। इसके अलावा जवाब पर +1। यह जोड़ने योग्य है कि निजी सुरक्षा की कोई डिग्री प्रदान नहीं करता है, यह अभी भी बीच में एजेंटों द्वारा देखा जा सकता है। इसका सीधा सा मतलब है कि कोई भी "ईमानदार" एजेंट इसे नए सिरे से उत्पन्न प्रतिक्रिया के बजाय किसी और को नहीं देगा।
जॉन हन्ना

फिक्स्ड! यह हास्यास्पद है क्योंकि मैंने इसे पोस्ट करने से पहले कुछ बार पढ़ा, लेकिन मुझे लगता है कि मुझे पता था कि "नहीं" होना चाहिए था, इसलिए मेरे दिमाग ने इसे जोड़ा: डी। और हां, आपकी टिप्पणी के लिए +1, क्योंकि यह ध्यान दिया जाना चाहिए कि उपयोगकर्ता से संबंधित डेटा के लिए अनुशंसित होने पर, निजी वास्तविक सुरक्षा (एसएसएल) को प्रतिस्थापित नहीं करेगा।
सालगिजा

यह बहुत आसान है या तो "नहीं" लिखना चाहिए जब आपको नहीं करना चाहिए या इसे छोड़ देना चाहिए। मुझे पता है कि बड़ी संख्या में मेरे स्वयं के संपादन (विभिन्न क्षेत्रों में) उसी टाइपो को ठीक कर रहे हैं।
जॉन हन्ना

15
इसलिए यदि हम कुछ भी निर्दिष्ट नहीं करते हैं, तो क्या डिफ़ॉल्ट व्यवहार "सार्वजनिक" या "निजी" है?
पचेरियर

1
@Honey लेकिन एक ही प्रॉक्सी का उपयोग करने वाले कई ग्राहक हो सकते हैं। यदि यह ठीक है सभी ग्राहकों को एक ही प्रतिक्रिया भेजें तो प्रॉक्सी स्तर पर कैश करना ठीक है, अन्यथा क्लाइंट पर कैश करना ठीक हो सकता है (अभी भी ऐसे मामले हैं जहां यह एक बुरा विचार है), लेकिन प्रॉक्सी पर नहीं।
जॉन हैना
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.