दिलचस्प पोस्ट
एसक्यूएल में, आप श्रेणियों में "समूह" कैसे कर सकते हैं? स्तंभ नाम पाने के लिए MySQL क्वेरी? मैं इस तरह को छोड़कर सी # संरक्षित सदस्यों का उपयोग क्यों नहीं कर सकता? सी रनटाइम लाइब्रेरी क्या है? यूनिकोड, यूटीएफ, एएससीआईआई, एएनएसआई प्रारूप मतभेद क्या इस का उपयोग करने के लिए कोई कारण है-> आईट्यून्स यूआरएल की समीक्षा करें और आईओएस 7 (यूजर को हमारे एप रेट करने के लिए कहें) ऐपस्टोर एक खाली पेज दिखाएं जावास्क्रिप्ट में यूआरएल के जीईटी पैरामीटर का उपयोग करना दो तिथियों के बीच महीनों में अंतर मैं कैसे जांच सकता हूं कि जावा में दो नंबरों को गुणा करना ओवरफ़्लो का कारण होगा? अंकों की सरणी को पूर्णांक कनवर्ट करें एक <इनपुट> तत्व पर jQuery परिवर्तन ईवेंट – पिछले मान को बनाए रखने के लिए कोई भी तरीका? AppCompat के साथ नहीं दिखाया गया है CSS त्रिकोण कैसे काम करते हैं? मैं Microsoft Azure मेमोरी में एक लीज्ड ब्लॉब को कैसे हटा सकता / सकती हूं?

क्या HTTP में तरीकों को कैश करना संभव है?

बहुत सरल कैशिंग शब्दार्थ के साथ: यदि पैरामीटर समान हैं (और यूआरएल एक ही है, निश्चित रूप से), तो यह एक हिट है क्या यह संभव है? सिफारिश की?

वेब के समाधान से एकत्रित समाधान "क्या HTTP में तरीकों को कैश करना संभव है?"

खंड 9.5 में संबंधित आरएफसी 2616 (POST) आपको POST संदेश के जवाब की कैशिंग की अनुमति देता है, यदि आप उचित शीर्षलेख का उपयोग करते हैं

इस पद्धति के उत्तर कैश करने योग्य नहीं हैं, जब तक कि प्रतिक्रिया में उचित कैश-नियंत्रण या हेडर फ़ील्ड का समय समाप्त हो। हालांकि, 303 (अन्य देखें) प्रतिक्रिया का उपयोग कैश करने योग्य संसाधन को प्राप्त करने के लिए उपयोगकर्ता एजेंट को निर्देशित करने के लिए किया जा सकता है।

ध्यान दें कि एक ही आरएफसी स्पष्ट रूप से धारा 13 (HTTP में कैशिंग) में स्पष्ट रूप से बताता है कि एक पोस्ट अनुरोध के बाद एक कैश संबंधित इकाई को अमान्य कर देना चाहिए।

कुछ HTTP विधियों को एक इकाई को अमान्य करने के लिए कैश का कारण होना चाहिए। यह या तो अनुरोध-यूआरआई या स्थान या सामग्री-स्थान शीर्षलेख (यदि मौजूद है) द्वारा निर्दिष्ट इकाई है। ये विधियां हैं:

- PUT - DELETE - POST 

यह मेरे लिए स्पष्ट नहीं है कि इन विनिर्देशों से सार्थक कैशिंग कैसे हो सकता है।

आरएफसी 2616 धारा 9.5 के अनुसार:

"POST विधि का जवाब कैश करने योग्य नहीं है, प्रतिक्रिया को छोड़कर उचित कैश-नियंत्रण या हेडर फ़ील्ड समाप्त हो जाती है।"

तो, हां, आप POST अनुरोध का जवाब कैश कर सकते हैं लेकिन केवल अगर यह उपयुक्त शीर्ष लेखों के साथ आता है ज्यादातर मामलों में आप प्रतिक्रिया कैश नहीं करना चाहते। लेकिन कुछ मामलों में – जैसे कि आप सर्वर पर किसी भी डेटा को सहेज नहीं रहे हैं – यह पूरी तरह उपयुक्त है

ध्यान दें, हालांकि मौजूदा फ़ायरफ़ॉक्स 3.0.10 सहित कई ब्राउज़रों, हेडर की परवाह किए बिना जवाब पोस्ट नहीं करेंगे। IE इस संबंध में अधिक चालाकी से व्यवहार करता है।

अब, मैं आरएफसी 2616 एस 13.10 के बारे में यहां कुछ भ्रम को साफ़ करना चाहता हूं। यूआई पर पोस्ट विधि "कैशिंग के लिए संसाधन को अमान्य" नहीं करता है क्योंकि कुछ ने यहां कहा है। यह उस यूआरआई के पहले वाला कैश संस्करण बनाता है, भले ही इसकी कैश कंट्रोल हेडर ने लंबे समय तक ताजगी का संकेत दिया हो।

कुल मिलाकर:

मूल रूप से पोस्ट एक idempotent ऑपरेशन नहीं है । तो आप इसे कैशिंग के लिए उपयोग नहीं कर सकते। GET एक idempotent ऑपरेशन होना चाहिए, इसलिए इसे सामान्यतः कैशिंग के लिए उपयोग किया जाता है।

कृपया HTTP 1.1 आरएफसी 2616 एस 9.1 की धारा 9.1 देखें।

गेट विधि के शब्दों के अलावा:

POST पद्धति ही एक स्रोत के लिए कुछ पोस्ट करने का अर्थ है। पोस्ट कैश नहीं किया जा सकता है क्योंकि यदि आप कुछ बार बनाते हैं तो दो बार बनाम तीन बार, फिर आप हर बार सर्वर के संसाधन को बदल रहे हैं। प्रत्येक अनुरोध के मामलों और सर्वर को वितरित किया जाना चाहिए।

PUT विधि स्वयं अर्थात् एक संसाधन बनाने या बनाने का मतलब है। यह एक idempotent ऑपरेशन है, लेकिन यह कैशिंग के लिए उपयोग नहीं किया जाएगा क्योंकि इस दौरान एक DELETE हो सकता था।

डीईएलईईटी पद्धति का मतलब अर्थस्वरूप एक संसाधन को हटाना है। यह एक idempotent ऑपरेशन है, लेकिन यह कैशिंग के लिए उपयोग नहीं किया जाएगा क्योंकि PUT इस बीच में हो सकता है।

क्लाइंट साइड कैशिंग के संबंध में:

एक वेब ब्राउज़र हमेशा आपके अनुरोध को अग्रेषित करेगा, भले ही उसकी पिछली पोस्ट ऑपरेशन से कोई प्रतिक्रिया हो। उदाहरण के लिए आप जीमेल के साथ एक दो दिन के अलावा ईमेल भेज सकते हैं। वे एक ही विषय और शरीर हो सकते हैं, लेकिन दोनों ईमेल भेजे जाने चाहिए।

प्रॉक्सी कैशिंग के बारे में:

एक प्रॉक्सी HTTP सर्वर जो आपके संदेश को सर्वर पर अग्रेषित करता है, वह कुछ भी कैश नहीं करेगा बल्कि एक GET या सिर अनुरोध करेगा।

सर्वर कैशिंग के बारे में:

डिफ़ॉल्ट रूप से एक सर्वर अपने कैश की जांच के माध्यम से एक पोस्ट अनुरोध को स्वचालित रूप से संभाल नहीं करेगा। लेकिन निश्चित रूप से आपके अनुरोध पर एक पोस्ट अनुरोध भेजा जा सकता है या ऐड-इन किया जा सकता है और आप अपनी खुद की कैश प्राप्त कर सकते हैं, जब आप पैरामीटर एक समान हैं।

संसाधन को अमान्य करना:

HTTP 1.1 आरएफसी 2616 एस 13.10 की जांच से पता चलता है कि POST विधि कैशिंग के लिए संसाधन को अमान्य कर देना चाहिए।

यदि ऐसा कुछ है जो वास्तव में आपकी साइट पर डेटा नहीं बदलता है, तो यह एक GET अनुरोध होना चाहिए। भले ही यह एक फार्म है, फिर भी आप उसे एक अनुरोध के रूप में सेट कर सकते हैं। जबकि, जैसा कि अन्य लोगों की ओर इशारा करते हैं, आप एक पद के परिणामों को कैश कर सकते हैं, यह शब्दावली का अर्थ नहीं होगा क्योंकि परिभाषा के द्वारा एक पोस्ट डेटा बदल रहा है।

यदि आप कोई पोस्ट उत्तर कैश करते हैं, तो यह वेब एप्लिकेशन की दिशा में होना चाहिए। यह वही है जिसका अर्थ है "इस पद्धति के प्रति उत्तरदायी नहीं हैं, जब तक कि प्रतिक्रिया में उचित कैश-नियंत्रण या हेडर फ़ील्ड का समापन नहीं होता है।"

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

इस धारणा के तहत कैश से जीईटी का इस्तेमाल किया जा सकता है

एक ऐसा अनुप्रयोग जो आवश्यक और सही शीर्षकों को संलग्न करने योग्य और गैर-कूकीज POST प्रतिक्रियाओं के बीच अंतर करने में विफल रहता है, किसी भी अवैध कैशिंग परिणाम के लिए गलती पर है।

उस ने कहा, कैश को मारने वाले प्रत्येक पद को सशर्त हेडर का उपयोग करने के लिए सत्यापन की आवश्यकता है। ऑब्जेक्ट का जीवनकाल समाप्त होने के बाद तक अनुरोधों के उत्तर में प्रतिबिंबित नहीं किए जाने वाले किसी पोस्ट के परिणाम से बचने के लिए कैश सामग्री को ताज़ा करने के लिए यह आवश्यक है।

बेशक यह संभव है यदि आप अपने सर्वर पर भेजे गए पोस्ट अनुरोधों को पकड़ना चाहते हैं, और बाद में फिर से भेजे जाने वाले डेटा को कैश करने के लिए – कोई पसीना नहीं

"राज्य" के बारे में मुश्किल भाग आता है आप कैसे तय करते हैं कि आप उपयोगकर्ता को वापस भेजना चाहते हैं, वास्तव में वह समान होना चाहिए? क्या होगा अगर उसकी कुकीज़ बदल गई है – क्या वह डेटा बदल सकता है जिसे आप वापस भेजना चाहते हैं?

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

मार्क नॉटिंघम ने विश्लेषण किया है कि जब किसी पोस्ट की प्रतिक्रिया कैश करने के लिए संभव है ध्यान दें कि बाद के अनुरोध जो कैशिंग का लाभ लेना चाहते हैं, उन्हें GET या HEAD अनुरोधों के लिए होना चाहिए। Httpbis भी देखें

पदों की पहचान की गई राज्य के प्रतिनिधित्व में सौदा नहीं है, 100 में से 99 गुना। हालांकि, एक ऐसा मामला है जहां यह होता है; जब सर्वर यह कहने के लिए अपने रास्ते से बाहर निकलता है कि यह उत्तर उत्तर यूआरआई का एक प्रतिनिधित्व है, जो कि सामग्री यूआरआई के समान है। जब ऐसा होता है, तो डाक प्रतिक्रिया उसी यूआरआई की प्रतिक्रिया प्राप्त करने की तरह होती है; इसे कैश्ड और पुन: उपयोग किया जा सकता है – लेकिन केवल भविष्य के लिए अनुरोध प्राप्त करें

https://www.mnot.net/blog/2012/09/24/caching_POST

फ़ायरफ़ॉक्स 27.0 और httpfox के साथ, 1 9 मई, 2014 को, मैंने इसकी एक पंक्ति देखी: 00: 03: 58.777 0.488 657 (393) पोस्ट (कैश) टेक्स्ट / html https://users.jackiszhp.info/S4UP

जाहिर है, एक पोस्ट विधि की प्रतिक्रिया कैश्ड है, और यह https में भी है अविश्वसनीय!

पोस्ट अफाज़ अजाक्स में उपयोग किया जाता है किसी पोस्ट के लिए एक कैश्ड प्रतिक्रिया देने से संचार चैनल और संदेश प्राप्त करने के साइड इफेक्ट को हराया जाता है। यह बहुत बहुत खराब है नीचे ट्रैक करने के लिए यह एक वास्तविक दर्द भी है अत्यधिक के खिलाफ की सिफारिश की

एक तुच्छ उदाहरण एक संदेश होगा, जो एक साइड इफेक्ट के रूप में, आपका वेतन 10,000 डॉलर वर्तमान सप्ताह में भुगतान करता है। आप "ओके, यह माध्यम से चले गए!" पृष्ठ पिछला सप्ताह कैश किया गया था वास्तविक और विश्व मामलों के अन्य जटिल मामलों में इसी तरह का घबराहट होता है।