क्या CURL कैश अनुरोध करता है?


19

यह एक बहुत लंबा सवाल है, इसलिए मेरे साथ रहें।

मैं अपने Aamai सर्वर को AWS के उदाहरण से लॉग इन करना चाहता था। इसलिए, मैंने अब बेंचमार्क चलाना शुरू कर दिया। हालांकि, वे ~ 3 एमबी वीडियो फ़ाइलों को डाउनलोड करने के लिए हास्यास्पद रूप से तेज़ लग रहे थे। स्वाभाविक रूप से मैं देखना चाहता था कि क्या चल रहा है। यह वही है जो मैंने फ़ाइल प्राप्त करने के लिए किया था

कर्ल -v -o / dev / null

उपरोक्त ~ 5 सेकंड में पूरा हुआ।

इसके बाद, मैंने फिर से वही कमान चलाई। इस बार, यह ~ 200ms में पूरा हुआ! स्वाभाविक रूप से, मेरा अंतर्ज्ञान कहता है कि फ़ाइल को कहीं कैश किया जा रहा है।

मेरे सवाल:

  1. कर्ल कैश फाइल करता है? यदि हां, तो क्या इसे अनदेखा करने का कोई तरीका है?
  2. यदि कर्ल नहीं है, तो क्या कर्ल के नीचे ubuntu एब्सट्रैक्ट कैशे करता है? यदि हां, तो क्या इसे अनदेखा करने का कोई तरीका है?
  3. आवश्यकताओं को देखते हुए, क्या आपको लगता है कि एब के अलावा एक बेंचमार्किंग टूल भी हो सकता है जो इस उद्देश्य की पूर्ति कर सकता है?

धन्यवाद, अक्षय

जवाबों:


15

कर्ल क्लाइंट फ़ाइलों को कैशिंग नहीं कर रहा है, लेकिन रिमोट सर्वर नेटवर्क अच्छी तरह से हो सकता है। यह देखने के लिए कि क्या आप इसे पुन: उत्पन्न कर सकते हैं, URL में एक मनमाना क्वेरी स्ट्रिंग चर जोड़ने का प्रयास करें।


आपके उत्तर के लिए धन्यवाद। मैं अकामाई सर्वर के रूप में मनमाने ढंग से क्वेरी स्ट्रिंग नहीं जोड़ सका जिसका उपयोग मैं किसी भी क्वेरी परम को स्वीकार नहीं करता हूं! (फोर्सिंग एरर क्योंकि यह टाइमस्टैम्प और URL के नमकीन टोकन डाइजेस्ट पर निर्भर करता है)। हालाँकि मैं एक ही रास्ते के लिए (अनिवार्य रूप से कई URL) एकाधिक टोकन उत्पन्न करने में सक्षम था और आप बिल्कुल सही हैं। कर्ल किसी भी फाइल को कैशिंग नहीं कर रहा था - रिमोट सर्वर था। सीडीएन जाओ! :)
अक्षय शानभोग

6

माना, कोशिश करें:

curl -v -H "Cache-Control: no-cache"

यह कैश न करने के लिए वेब सर्वर को बताएगा। कैशिंग के नीचे की परतों को तब तक न रोकें जब तक कि यह हेडर को मानने के लिए कोडित न हो।


0

मैंने इस कर्ल कमांड का उपयोग कैश बस्टर पैरामीटर के साथ किया है।

curl http://example.com/static/changing_file?_=$(date +%s)

date +%sयुग के बाद से सेकंड प्रिंट करता है, यदि आप एक से अधिक बार एक से अधिक बार date +%s.%Nयूनो को नैनोसेकंड में जोड़ने के लिए कहते हैं।


0

तुम एक जोड़ने का उपयोग कर सकते यादृच्छिक क्वेरी स्ट्रिंग का उपयोग कर$RANDOM वातावरण चर:

curl --location --silent "https://git.io/lsf-e2e?$RANDOM"

यह मेरे लिए github कच्ची फ़ाइलों पर काम किया।


-2

हो सकता है कि आपका डीएनएस नाम के रिज़ॉल्यूशन को कैशिंग कर रहा हो और यह प्रतिक्रिया के समय में भिन्नता का कारण है।

यह केवल एक सिद्धांत है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.