تقنية

تنزيل يصفه المساعد: أي اسم يخص filename*؟

رسم توضيحي: filename: اسم ASCII؛ filename*: اسم مشفر؛ فهم الحقلين؟؛ عند الفهم: الاسم ذو النجمة
مخطط من إعداد بحر العلوم. أولوية مشروطة؛ الاسم المقترح لا يثبت الحفظ أو المحتوى

الاسم المقترح في رد التنزيل لا يثبت اسم ملف حفظ فعلا. قد يرى المساعد اسمين في Content-Disposition ثم يختار الأول لأنه أسهل قراءة. السؤال هنا أضيق: أي حقل له الأولوية حين يفهم العميل الحقلين؟ نقرأ رد HTTP مؤلفا، دون تنزيل ملف أو تجربة متصفح.

الخلاصة السريعة

إذا فهم العميل filename و filename* معا، يفضل filename* وفق MDN. [1] هذا اسم مقترح في الرد، لا إثبات لاسم حفظ فعلي أو لمحتوى الملف.

  • filename* يستخدم ترميز RFC5987؛ وعند فهم الحقلين تكون له الأولوية. [1] نقصر الحديث على حقل في رد تنزيل.
  • في ورقتنا اسم ASCII هو notes.txt، والاسم المشفر المقصود «ملاحظات.txt»؛ اختيار الثاني مشروط بفهم الحقلين، ولم نحفظ ملفا.
  • يوصي المصدر بإدراج الحقلين للتوافق، وباسم ASCII بديل؛ وقد تغير المتصفحات محارف غير مناسبة مثل فواصل المسار. [1] لا نضمن اسم الحفظ الحرفي.
  • الاسم وحده لا يثبت اللغة أو النص أو سلامة المحتوى؛ يفصل ملخص المساعد القيمة المقترحة مما قرئ أو حفظ فعليا.

ما شرط أولوية الاسم؟

توضح MDN أن filename* يستخدم ترميز RFC5987، وأنه يفضل على filename عندما يوجد الحقلان ويفهمهما العميل. [1]

إذن لا نصوغ القاعدة «الاسم ذو النجمة هو المستخدم دائما». نحتاج شرط الفهم، ونحدد أننا نتحدث عن ترويسة رد، لا اسم رفع في نموذج. إذا لم تصف المادة العميل أو ما يفهمه، نذكر الأولوية المشروطة ولا نخترع نتيجة تنزيل.

يحفظ هذا القيد معنى السؤال. وجود حرف عربي في شرح المساعد لا يثبت أنه فك ترميز قيمة أو شاهد مربع الحفظ؛ يمكن أن يكون يقرأ ورقة رمزية فقط.

كيف نصف اسمين لرد واحد؟

نؤلف بطاقة تقول إن filename يحمل notes.txt، وإن filename* يحمل قيمة مشفرة يقصد بها «ملاحظات.txt». نعلن المعنى المفكوك في التمرين، ولا نقدم سلسلة ترميز اختبرناها على خدمة.

للعميل الذي يفهم الحقلين نختار الاسم العربي المقصود وفق القاعدة. أما اسم ASCII فيبقى بديله المعلن. ليس وجود الاسمين ملفين مختلفين، ولا نسختين مستقلتين من النص؛ إنهما اقتراحان للاسم في بطاقة رد واحدة.

لو غاب شرط الفهم من سجلنا، لا نكتب أن الاسم العربي ظهر على جهاز. نقول ما تصفه القاعدة ونترك فعل العرض والحفظ دون دليل.

الحقل في البطاقةمعناه المعلندوره
filenamenotes.txtبديل ASCII
filename*ملاحظات.txt بعد فك الترميزالمفضل عند فهم الحقلين

لماذا لا نضمن الاسم كما كتب؟

يوصي المصدر بإضافة الحقلين للتوافق وباسم ASCII بديل، ويذكر أن المتصفحات قد تحول فواصل المسار إلى محارف أخرى. [1]

لذلك لا نعامل سلسلة الاسم مسارا أُنشئ على قرص. في مثالنا لا يوجد مجلد مقصد، ولا قرار مستخدم بشأن الحفظ، ولا سجل يبين الاسم الناتج. نقل الاسم المقترح إلى تقرير بعبارة «حفظ باسم» يضيف واقعة لم نقدمها.

يمكن للمساعد استعمال صياغة «يقترح الرد هذا الاسم». وهي تظل واضحة حتى إذا تغير اسم محلي لاحقا في مادة أخرى؛ عندها نحتاج سجل تلك المادة نفسها.

هل يكشف الامتداد محتوى الملف؟

لو استعملت بطاقة أخرى الاسم نفسه، فلا يثبت ذلك تطابق نصي الملفين. ولو كان الامتداد txt، لا نعلن أن المحتوى عربي لمجرد وجود اسم عربي في الترويسة. هذه حدود استنتاج ورقتنا، لا فحص لنوع محتوى فعلي.

يسجل الملخص الحقلين والمعنى المشفر المعلن وشرط الأولوية. ثم يميز بين اسم مقترح، ومحتوى قرئ، واسم حفظ شهدته مادة موثقة. لا يقوم أحد هذه الحقول مقام الآخرين.

لم نرسل طلبا أو نفك ترميزا ببرنامج أو ننزل ملفا. فائدة التمرين أن يجيب المساعد عن أولوية محددة دون تحويل وصف الرد إلى خبر عن جهاز أو محتوى لم يره.

المصادر ومتابعة القراءة

  1. MDN: Content-Disposition (يفتح في نافذة جديدة)developer.mozilla.org

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.