ينقطع تنزيل تقرير كبير، فيرسل التطبيق طلبًا لاستكماله من موضع محفوظ. إذا أعاد الخادم الملف كاملًا ثم أضافه العميل إلى الجزء السابق، يتكون ملف تالف أو مكرر. نجاح الطلب برمز 200 لا يكفي لإثبات نجاح الاستكمال؛ يلزم فهم الاستجابة قبل ضم أي بايتات.
ميز الطلب الجزئي من النتيجة الجزئية
توضح مواصفة HTTP Range أن الخادم قد يتجاهل Range. وعند إرسال جزء واحد برمز 206، يصف Content-Range النطاق المرسل. وجود Accept-Ranges إعلان مفيد، لكنه لا يضمن أن كل طلب لاحق سيعيد جزءًا. اختبر استجابة GET الفعلية عبر طبقات التخزين والبروكسي المستخدمة.
ابدأ بملف مصطنع معروف المحتوى والحجم. لا تستخدم تقرير عميل أو رابط تنزيل سريًا في أدلة علنية. افصل التحقق من التصريح والوصول إلى الملف عن دعم الاستكمال؛ دعم Range لا يمنح صلاحية جديدة.
اكتب توقعًا رقميًا بسيطًا
| العينة الافتراضية | ما تفحصه |
|---|---|
| ملف حجمه 1000 بايت وطلب bytes=0-99 | عند قبول الجزء: 206 ونطاق 0-99/1000 ومحتوى 100 بايت |
| الخادم يتجاهل Range ويعيد 200 | عدم إضافة الملف الكامل تلقائيًا إلى جزء قديم |
| نطاق خارج حدود الملف | التعامل الصحيح مع الرفض وحالة 416 إن أُعيدت |
| تغير الملف بين الطلبين | عدم تركيب جزأين من نسختين مختلفتين |
الأرقام هنا حالة توضيحية لتجربة محكومة. طابق كذلك Content-Type والبايتات الفعلية. راجع أثر ضغط النقل أو تحويل المحتوى إذا كانا جزءًا من البنية، فلا تقارن أحجام تمثيلات مختلفة وكأنها نسخة واحدة.
حدد سياسة تغير النسخة
يمكن أن يساعد If-Range مع مدقق صالح في طلب الجزء من النسخة المتوقعة، لكن اقرأ شروطه مع فريق التنفيذ. إذا وصلت استجابة كاملة بدل الجزئية، اتبع مسار تنزيل جديد مناسب. لا تجعل تحسين تجربة الشبكة يحول الإخفاق إلى ملف يبدو قابلًا للفتح لكنه يحتوي على بيانات مختلطة.
اختبر الناتج النهائي مستقلًا
بعد الاستكمال، قارن الملف المرجعي والنسخة الناتجة بوسيلة تحقق مناسبة وافتحه فعليًا. ضمن بوابات الملفات وفحص التسليم سجل الطلبات والاستجابات والحجم والناتج، بدل الاكتفاء بوصول شريط التنزيل إلى النهاية.




