Squid के ज़रिए डाउनलोड जारी करें
फ़ाइल जारी करने से पहले Range रिस्पॉन्स और ऑब्जेक्ट की समानता जाँचें। Squid की प्रीफ़ेच नीति को बुनियादी Range समर्थन से अलग समझें।
डाउनलोड तभी जारी करें जब download.part उसी ऑब्जेक्ट प्रतिनिधित्व का हिस्सा हो जिसे अब माँगेंगे। सिर्फ़ फ़ाइल नाम यह साबित नहीं करता: पहली कोशिश के बाद मूल सर्वर सामग्री बदल चुका हो सकता है।
curl --proxy http://proxy.example:3128 --noproxy '' --connect-timeout 5 --max-time 60 -C - --output download.part http://files.example/test.binदोनों एंडपॉइंट ऐसी सेवाओं से बदलें जिनके इस्तेमाल की अनुमति हो। जहाँ सार्वजनिक प्रॉक्सी की अनुमति हो, वहाँ सार्वजनिक फ़ाइल की तुलना के लिए HTTP प्रॉक्सी सूची से HTTP एंडपॉइंट चुनें। -C - मौजूदा फ़ाइल के आकार को जारी रखने का बिंदु बनाता है। किसी भी लौटे बॉडी को बचे हुए बाइट मानने के बजाय गंतव्य का रिस्पॉन्स देखें:
| रिस्पॉन्स | अर्थ |
|---|---|
| Content-Range के साथ 206 | जाँचें कि लौटाई रेंज अपेक्षित अगला हिस्सा है। |
| 200 | सर्वर ने शायद Range को अनदेखा करके पूरा प्रतिनिधित्व भेजा हो। |
| 416 | माँगी रेंज पूरी नहीं हो सकती; त्रुटि पृष्ठ फ़ाइल में न जोड़ें। |
वैलिडेटर और If-Range बदलते रिसोर्स के अलग संस्करण जोड़ने से बचा सकते हैं। पूरी फ़ाइल पर भरोसा करने से पहले ऐप के प्रतिनिधित्व नियम मानें।
Squid 6.13 का range_offset_limit तय करता है कि कैश के लिए ऑब्जेक्ट कब शुरू से लिया जाए, यह नहीं कि क्लाइंट रेंज माँग सकता है या नहीं:
range_offset_limit 0शून्य सीमा सिर्फ़ कैश भरने के लिए शुरुआत का अतिरिक्त हिस्सा लेने से बचाती है। ऑब्जेक्ट कैश किए बिना उपयोगी रेंज भेजना भी सफल हो सकता है। सामान्य HTTPS CONNECT में Range आदान-प्रदान गंतव्य के TLS के अंदर होता है; वह रिस्पॉन्स पढ़ें, Squid की दिखाई देने वाली ऑब्जेक्ट कैश नीति को अंदरूनी अनुरोध का नियंत्रण न मानें।