Summary

  • وصفت RFC 775 أربعة أوامر FTP تجريبية أضافتها BBN لإنشاء الأدلة وحذفها وتحديد الموقع داخلها أثناء صيانة المواقع البعيدة.
  • كان نجاح الإنشاء يقتضي أن يعيد الخادم المسار المطلق القابل للاستخدام؛ فالاسم القصير المُرسل إلى خادم TOPS-20 قد لا يصلح للدخول إلى الدليل الذي أُنشئ به.

تخيل جهازاً يجيبك: «تم إنشاء المجلد»، ثم يرد بعد ثانية: «لا أعرف المجلد الذي تقصده». المثال موجود في RFC 775، لا في مسرحية عن أجهزة الحاسوب. على خادم TOPS-20، قد ينجح XMKD MYDIR ويفشل XCWD MYDIR. لم يختفِ المجلد؛ بل استقر تحت اسم أطول هو <DFRANKLIN.MYDIR> في المثال الذي قدمته الوثيقة.

جاءت الفكرة من عمل BBN في صيانة مواقع بعيدة لمشروع تابع لـ ARPA. كانت الشركة تثبت البرمجيات وتديرها على عدة أجهزة DEC PDP-11 تعمل بنظام UNIX. نقل الملفات وحدها لا يعيد بناء الهيكل الذي كانت تعيش فيه. لهذا أضاف المهندسون أربعة أوامر إلى خوادم FTP: XMKD للإنشاء، وXRMD للحذف، وXPWD لمعرفة الدليل الحالي، وXCUP للصعود إلى الدليل الأب. الأمر الأخير يوفر على برنامج النقل تخمين الطريقة التي يكتب بها كل نظام اسم الأب.

كان على هذه الأوامر أن تعبر حدود UNIX. فشبكة ARPANET ضمت أيضاً مضيفات TOPS-20 وMultics ذات أدلة شجرية، لكن نحو أسماء المسارات اختلف بينها. حين يكون العميل داخل <DFRANKLIN> ويرسل XMKD MYDIR، يفهم الخادم طلب إنشاء دليل فرعي. أما عنوان الدليل الناتج الذي يمكن الرجوع إليه فقد يكون <DFRANKLIN.MYDIR>. اسم الطلب يصف الفعل في موضع معين؛ ولا يضمن عنواناً ثابتاً للنتيجة.

هنا جاءت قيمة الرد. طلبت RFC 775 أن يرسل الخادم بعد الإنشاء الناجح سطراً يبدأ بالرمز 257 ويضع المسار المطلق بين علامتي اقتباس. المثال الخاص بـ UNIX هو 257 "/usr/dm/child" directory created. وعلى TOPS-20 يعود المسار بصيغته المحلية. وإذا احتوى الاسم نفسه على علامة اقتباس، تُضاعف داخل الرد. تلك قاعدة قراءة ضرورية لبرنامج آلي، لأن عنواناً ينكسر في منتصفه يساوي عنواناً ضائعاً.

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

حددت الوثيقة كذلك ما يحدث إن وُجد دليل بالاسم نفسه من قبل. عَدّته BBN خطأً، وعرضت رداً بالرمز 521 دون تنفيذ عمل جديد. وفصلت جداولها بين رموز FTP الأقدم التي استُخدمت في التطبيق ورموز مقترحة للنسخة الأحدث في RFC 765. كان 257 إضافة إلى المجموعة الأولى، أما 251 فاقتراح للمجموعة الثانية. لا تسير نسخ البروتوكول كلها خلف رقم واحد في اللحظة نفسها.

أرادت RFC 765 أن تحجب عن المستخدم اختلاف أنظمة الملفات، لكنها أقرت بعدم وجود قاعدة موحدة لكتابة المسارات. اختارت RFC 775 معالجة عملية: ليقل الخادم الذي أنشأ الدليل كيف يمكن العثور عليه. وفي RFC 959 عام 1985، ظهرت MKD وRMD وPWD وCDUP ضمن الأوامر الاختيارية الجديدة، بعد سقوط الحرف التجريبي X. بقيت الفكرة حاضرة: صاحب نظام الملفات هو من يعرف الاسم الذي يفتح بابه.