استئناف التنزيلات عبر Squid
افحص استجابات Range وهوية الكائن قبل الاستئناف، وميّز سياسة الجلب المسبق في Squid عن الدعم الأساسي للنطاقات.
استخدم الاستئناف فقط عندما يكون 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 - حجم الملف الموجود كنقطة للاستئناف. افحص استجابة الوجهة بدل اعتبار أي جسم مُعاد هو البايتات الناقصة:
| الاستجابة | التفسير |
|---|---|
| 206 مع Content-Range | تحقّق من أن النطاق المُعاد هو الاستكمال المتوقع. |
| 200 | قد يكون الخادم تجاهل Range وأرسل التمثيل الكامل. |
| 416 | لا يمكن تلبية النطاق المطلوب؛ لا تُلحق صفحة الخطأ بالملف. |
يمكن لأدوات التحقق وIf-Range المساعدة في تجنب وصل إصدارات مختلفة من مورد يتغير. اتبع قواعد التمثيل الخاصة بالتطبيق قبل الوثوق بالملف المكتمل.
يتحكم range_offset_limit في Squid 6.13 في وقت جلب كائن من بدايته للتخزين المؤقت، لا في إمكانية طلب العميل نطاقًا:
range_offset_limit 0يمنع الحد الصفري جلب بداية إضافية لمجرد ملء الذاكرة المؤقتة. قد ينجح تمرير نطاق مفيد دون تخزين الكائن. في CONNECT HTTPS المعتاد، يجري تبادل Range داخل TLS الخاص بالوجهة؛ اقرأ تلك الاستجابة بدل اعتبار سياسة تخزين الكائنات المرئية في Squid تحكمًا في الطلب الداخلي.