ما هو '-' في multipart/form-data؟
-
29-09-2019 - |
سؤال
أريد أن أطرح سؤالاً حول بيانات multipart/form. أجد رأس HTTP لـ Multipart Post ونوع المحتوى: multipart/form-data ؛ الحدود = ------...-- boundarynumber. أريد أن أسأل ، كم من "-" بين عدد الحدود و "="؟
المحلول
ليس عازبا -
إلزامي. يمكنك الحصول على أي عدد منهم. إنه في الواقع لغز بالنسبة لي لماذا يميل وكيل المستخدمين إلى إضافة الكثير. ربما يكون ذلك تقليديًا لأنه في الأيام الخوالي ، عندما لا يزال الناس ينظرون بانتظام إلى حركة البروتوكول الفعلي ، فإنه يوفر بعض الفصل البصري اللطيف. في الوقت الحاضر ، لا معنى له.
لاحظ أنه عندما تكون استعمال الحدود الموجودة في الدفق ، يجب أن تسبقها اثنين من الواصلين (--
). هذا جزء من البروتوكول. بطبيعة الحال ، فإن حقيقة أن معظم وكيل المستخدمين يستخدمون الكثير من الواصلات في حدودهم يجعل هذا من الصعب للغاية رؤيته بالقدوة.
علاوة على ذلك ، و الاخير الحدود (التي تمثل نهاية الرسالة) مسبوقة و اللاحق من قبل اثنين من الواصلين (--
).
لذلك باختصار ، يمكنك الاتصال بحدودك OMGWTFPLZDIEKTHX
, ، ثم قد تبدو حركة المرور الخاصة بك هكذا:
Content-Type: multipart/form-data; boundary=OMGWTFPLZDIEKTHX
--OMGWTFPLZDIEKTHX
Content-Type: text/plain
First part (plain text).
--OMGWTFPLZDIEKTHX
Content-Type: text/html
<html>Second part (HTML).</html>
--OMGWTFPLZDIEKTHX--
نصائح أخرى
يعتمد عدد الشرطات على عدد تريد هناك. يمكن أن يكون صفرًا ، إذا أردت - فهذا يجعل المزيد من الشرطات تجعل الحدود أكثر وضوحًا.
تتكون الحدود من خط يحتوي على شرطين بالإضافة إلى كل شيء بعد "الحدود =". لذلك إذا قال رأسك boundary=ABC
, ، تبدو الحدود
--ABC
في تعريف الحدود الخاص بك ، لا يلزم وجود واصلات. عند استخدام هذا الحدود لفصل جزأين متميزين من الجسم ، يجب أن تبدأ باصلين واصلين ، تليها سلسلة الحدود المحددة مسبقًا.
تم شرح هذا في RFC 1341 (MIME), ، ويمكنك العثور على معلومات إضافية هناك في قسم Multipart (كما هو مرتبط).
انها تعسفية تماما.
الهدف من الحدود هو تحديد بداية وإنهاء بياناتك. لا يهم ما هو عليه ، طالما أنه ليس جزءًا من المحتوى.