206 Partial Content وطلبات النطاق في HTTP
206 Partial Content تعني أن الخادم يرسل نطاق البايتات الذي طلبه العميل فقط، كما في مشغلات الفيديو والتنزيل القابل للاستئناف.
206 Partial Content يعني أن الخادم يرسل جزءًا من الملف فقط لأن العميل طلب نطاقًا محددًا من البايتات. وبهذه الآلية تقفز مشغلات الفيديو داخل المقطع، وتستأنف برامج التنزيل ما انقطع، وتجلب عارضات PDF جزءًا واحدًا من المستند في كل مرة.
التعريف
يقول RFC 9110، القسم 15.3.7 إن الخادم «ينفّذ طلب نطاق بنجاح» بنقل جزء واحد أو أكثر من التمثيل. يرسل العميل ترويسة Range، ويرد الخادم بـ Content-Range التي تبيّن البايتات المرسلة، أو بجسم multipart/byteranges عند طلب عدة نطاقات. وتعلن الخوادم دعمها بالترويسة Accept-Ranges: bytes، أما النطاق الذي لا يمكن تلبيته فيحصل على 416 Range Not Satisfiable.
GET /media/intro.mp4 HTTP/1.1
Host: www.example.com
Range: bytes=0-1048575
HTTP/1.1 206 Partial Content
Content-Type: video/mp4
Content-Range: bytes 0-1048575/48211533
Content-Length: 1048576
Accept-Ranges: bytes
أين يهم دعم النطاقات
- الفيديو والصوت: تطلب المشغلات نطاقات لتبدأ بسرعة ولتتنقل داخل المقطع. ويتوقع Safari خصوصًا دعم النطاقات في ملفات الفيديو.
- التنزيلات الكبيرة التي ينبغي أن تُستأنف بعد انقطاع الاتصال.
- ملفات PDF المفتوحة في عارض المتصفح.
يتعامل Apache وNginx مع النطاقات للملفات الثابتة دون إعداد إضافي. وتأتي المشاكل عادةً من كود التطبيق الذي يبثّ الملفات دون قراءة Range، أو من بروكسيات تحذفها.
التأثير على السيو
الرمز 206 هو الرد الطبيعي على طلب نطاق، فلا يُعدّ خطأ. الخطر في العكس: خادم أو ذاكرة تخزين مؤقت ترسل 206 وجزءًا من المحتوى ردًّا على طلب بلا ترويسة Range. عندها يحصل الزاحف الذي يجلب HTML الخاص بك على صفحة مبتورة. فطلب GET عادي لصفحة يجب أن يعيد 200 مع المستند كاملًا. ولا تناقش وثائق Google لرموز الحالة الرمز 206، فلا تعوّل على معاملة خاصة. (ولا تخلطه مع 304 Not Modified الذي لا يرسل أي جسم لأن النسخة المخزّنة عند العميل ما زالت حديثة.)
كيف تتحقق
تُظهر أداة فحص ترويسات HTTP ما إذا كان الملف يعلن Accept-Ranges: bytes، وتؤكد أداة فحص حالة HTTP أن الطلب العادي يعيد 200. ولاختبار نطاق بنفسك:
curl -s -o /dev/null -w "%{http_code}\n" -r 0-1023 https://www.example.com/media/intro.mp4
206 الأسئلة الشائعة
هل 206 Partial Content خطأ؟
لا. هو رد نجاح على طلب نطاق، ويُستخدم في بث الفيديو والتنزيلات القابلة للاستئناف وعارضات PDF.
لماذا لا يعمل الفيديو أو التنقل داخله في Safari؟
من الأسباب الشائعة خادم أو سكربت يتجاهل ترويسة Range ويرسل الملف كاملًا دائمًا بالرمز 200. تأكد أن ملفات الوسائط تُخدَّم بدعم النطاقات حتى يستطيع الخادم الرد بـ 206.
هل يمكن أن يضر الرد 206 بالسيو؟
فقط إذا أرسل الخادم 206 وصفحة جزئية لطلب عادي بلا ترويسة Range، فيحصل الزواحف على HTML مبتور. يجب أن تحصل طلبات الصفحات العادية على 200 والمستند الكامل.