الخلاصة
- عرّفت RFC 2397 مخطط
data:للبيانات الصغيرة «الفورية»، مع نوع وسائط اختياري وعلامة;base64اختيارية وفاصلة تسبق البيانات. - عندما تسافر البايتات داخل URL، ينتقل التحكم من مسار الجلب البعيد إلى المستهلك المحلي ومعالج الوسائط وحدود المخزن المؤقت.
يعد عنوان URL المعتاد برحلة: يقرأ العميل موقعاً، ويتصل بنظام خارجي، ثم يتلقى تمثيلاً. قصّرت RFC 2397 هذه السلسلة. في data:[<mediatype>][;base64],<data> تحمل السلسلة التي تشير عادة إلى الخارج الشيء المطلوب قراءته أيضاً.
سمت الوثيقة ذلك «العنونة الفورية». لا يوجد خادم صغير خلف الفاصلة. بالنسبة إلى العنصر المضمّن، يفصل المستهلك التصريح عن الحمولة، ويعيد تكوين الثمانيات، ثم يفسرها وفق نوع الوسائط. صار المؤشر والبضاعة مدخلاً واحداً متسلسلاً.
قواعد الحذف دقيقة. إذا غاب نوع الوسائط فالقيمة الافتراضية هي text/plain;charset=US-ASCII، ويمكن حذف text/plain مع إبقاء charset. تختار ;base64، التي لا يتبعها رمز مساواة، تمثيل base64 ولذلك ليست معاملاً عادياً في Content-Type. من دونها تمثل محارف URL الآمنة ثمانياتها مباشرة، وتستخدم البقية %xx. base64 لا يشفّر ولا يثبت الهوية ولا يمنح إذناً.
لا يملك المخطط صيغة نسبية. يستعير المرجع النسبي عنوانه الأساسي من السياق، أما data: فيقدم النوع والمحتوى مكتملين. آلية ترث عنواناً، والأخرى تحمل بايتاتها معها.
تصر RFC على القيم القصيرة. تستشهد بقيود SGML في HTML 2.0: 1024 محرفاً لقيمة سمة واحدة، و2100 لمجموع قيم السمات في الوسم، و2100 للوسم كله. حتى صورة GIF الصغيرة في المثال وُصفت بأنها قريبة من حد المنفعة. ليست هذه حدوداً عامة لـ data:؛ بل توضح أن النحو والحاوية الخارجية وتخصيص الذاكرة قد تتحمل أطوالاً مختلفة.
يوضح قسم الأمن موضع السلطة. يستطيع وكيل جدار ناري منع جلب نوع وسائط محظور من الخارج، لكنه يجد صعوبة أكبر في فحص محتوى وصل أصلاً داخل URL بالطريق نفسه. لذلك ينبغي ألا يفسر التطبيق نوعاً تحظره إعداداته. البوابة الفعلية موجودة حيث تتحول الثمانيات إلى سلوك.
أقرت الوثيقة أيضاً بأن أثر القيم الطويلة جداً كان مجهولاً، وأن برنامجاً قد يتصرف بصورة غير معقولة عندما تتجاوز البيانات المخزن المخصص. يبقى اختباران منفصلان: هل النوع مسموح؟ وهل يمكن معالجة الحجم بأمان؟ غياب الجلب الخارجي لا يجيب عن أي منهما.
تعود الفكرة إلى أغسطس 1995. يسجل التاريخ استخدامها في VRML، ومقترحات تضمين البيانات في HTML، ومنتجات تجارية، ومعاملات كائنات Java وActiveX. ضُبط التصميم تدريجياً: أصبح حذف نوع الوسائط ممكناً، وصغرت علامة base64، وحُذف quoted-printable لأن %xx كان كافياً.
وللتصويبات اللاحقة أوزان مختلفة. يصلح تصويبان Verified المثال المستحيل %fg ويستبدلان urlchar غير المعرّف في RFC 2396 بـ uric. أما غموض المعاملات المقتبسة والفواصل فما زال Reported أو Held for Document Update، وليس نصاً معيارياً معتمداً. ورُفض اقتراح استبدال كلمة URL بكلمة URI في كل المواضع لأن المصطلح الأصلي كان صحيحاً تاريخياً.
درس RFC 2397 هو درس تحكم. حذف وسيط لا يحذف السلطة؛ بل يركزها في البرمجية التي تحلل وتفك وتفسر وتسمح. وكلما قصر المسار، وجب أن يكون الحد المحلي أوضح.
المصادر
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
