आपके लिए त्वरित CloudFlare 'नया उपयोगकर्ता' प्रश्न:
बैकग्राउंड: मेरे मूल सर्वर द्वारा सेवा किए गए HTML पृष्ठ कभी नहीं बदलते हैं। उपयोगकर्ता के ब्राउज़र में पेज लोड होने के बाद सभी डायनामिक सामग्री को जावास्क्रिप्ट के माध्यम से डाउनलोड किया जाता है। जावास्क्रिप्ट द्वारा प्राप्त की गई गतिशील सामग्री URL के क्वेरी स्ट्रिंग के भाग पर निर्भर करती है, लेकिन क्वेरी स्ट्रिंग का मूल रूप से डाउनलोड किए गए HTML सामग्री पर कोई प्रभाव नहीं पड़ता है। निम्न URL इसलिए सभी ब्राउज़र में जावास्क्रिप्ट द्वारा कार्य किए जाने से पहले मूल से बिल्कुल एक ही HTML उत्पन्न करते हैं :
https://www.example.com/private/my-investments?portfolioID=296
https://www.example.com/private/my-investments?portfolioID=325
https://www.example.com/private/my-investments?portfolioID=319
प्रश्न: यह देखते हुए कि CloudFlare डिफ़ॉल्ट रूप से HTML को कैश नहीं करता है, मैं अपने पेज नियम कैसे बनाऊंगा ताकि https://www.example.com/pStreet/my-investments?idanyValue] की एक ही कैश्ड प्रति सभी उपयोगकर्ताओं को वापस कर दी जाए ? यहाँ मैंने कोशिश की है:
"CACHE EVERYTHING:" 'कैश एवरीथिंग' निर्देश के प्रयोग से मेरा HTML कैश्ड (अच्छा) हो जाता है लेकिन यह कैश की (खराब) के हिस्से के रूप में पूरे क्वेरी स्ट्रिंग का उपयोग करता है। इसलिए यदि कोई उपयोगकर्ता निम्नलिखित URL को हिट करता है ...
https://www.example.com/private/my-investments?portfolioID=296
... और फिर दस सेकंड बाद उसी URL को एक अलग क्वेरी स्ट्रिंग के साथ हिट करता है, जैसे:
https://www.example.com/private/my-investments?portfolioID=325
... CloudFlare उस बाद के अनुरोध को कैश MISS (cf-cache-status: MISS) के रूप में मानता है और मेरे मूल सर्वर को फिर से हिट करता है। यह इस तथ्य के बावजूद कि HTML मूल से लौटा है दोनों URL के लिए समान है।
"IGNORE QUERY STRING CACHING:" मुझे लगा कि मैं "IGNORE QUERY STRING CACHING" विकल्प चुनकर इस समस्या को हल कर दूंगा। लेकिन जब पृष्ठ नियम में इस विकल्प का उपयोग किया जाता है, तो कोई भी एचटीएमएल कैश नहीं किया जाता है; केवल .js, .css, और .png फ़ाइलें कैश की गई हैं। और एक बार फिर से मेरी उत्पत्ति HTML डेटा के लिए हर एक कॉल के लिए हिट हो जाती है। :(
मुझे लगता है कि मुझे कुछ स्पष्ट याद आ रहा होगा। कोई विचार?
अद्यतन : एक विचार था जो मैं आपके द्वारा चलाना चाहता हूं। क्या मैं '' के बजाय '#' का उपयोग करने के लिए अपनी आंतरिक URL योजना को बदलकर इस समस्या को हल कर सकता हूं? इसके बजाय एक URL की तरह ...
https://www.example.com/private/my-investments?portfolioID=296
.. मैं कुछ इस तरह का उपयोग करेगा:
https://www.example.com/private/my-investments#portfolioID=296
यह क्वेरी स्ट्रिंग पैरामीटर्स को CloudFlare पर ट्रांसमिट होने से रोकेगा ... आपको क्या लगता है?
Festus