الخلاصة

  • أخرجت RFC 2062 صيغ IMAP القديمة من الوثيقة الأساسية، لكنها أبقت خريطة محدودة للتعامل مع التطبيقات الأقدم.
  • لم يكن الخادم الجديد ملزماً بقبول الأوامر المتقادمة، وكان ممنوعاً عموماً من إرسال الردود الملغاة؛ أما العميل فاحتفظ بسلوك استقبال محدد لكل رد.
  • القدرة على فهم مدخل قديم لا تمنح المرسل حق الاستمرار في إنتاجه.

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

الوثيقة Informational وتقول صراحة إنها لا تحدد معياراً للإنترنت. جمعت صيغاً جاءت من RFC 1176 ومن تطبيقات IMAP2bis التجريبية ومن RFC 1730 بعدما أخرجها IMAP4rev1 من المتن الرئيسي. بقي السجل التاريخي متاحاً، لكن ذلك لم يُبقِ سلطة استخدامه افتراضياً.

شملت الأوامر FIND ALL.MAILBOXES وFIND MAILBOXES وصيغتي SUBSCRIBE MAILBOX وUNSUBSCRIBE MAILBOX وPARTIAL. كما سُجلت عناصر FETCH أقدم مثل BODY[0] وRFC822.HEADER.LINES. لم تُلزم RFC 2062 الخوادم الجديدة بتنفيذها؛ كان التنفيذ خياراً لخدمة عميل قديم، لا حقاً لعميل جديد في إرسالها.

يكشف PARTIAL أن الاستبدال لم يكن تجميلياً. كان يعيد البيانات داخل رد FETCH من دون أن يبيّن الرد نفسه النطاق المعاد، وقد تُنفّذ عدة أوامر بترتيب مختلف. لذلك كان على العميل معالجة كل خطوة ومزامنتها. تستطيع صياغة أحدث أداء وظيفة قريبة مع إيصال أوضح لما طُلب وما عاد.

أما الردود المتقادمة فلم يكن لها حكم واحد. لا يرسلها الخادم الجديد عموماً. يُسمح برد MAILBOX فقط جواباً عن أوامر FIND القديمة. يجب على العميل تجاهل رد COPY القديم، ومعاملة رد STORE كأنه FETCH. قد يعني التوافق عند الاستقبال تحليلاً مشروطاً، أو إسقاطاً آمناً، أو تطبيعاً إلى معنى حالي.

حذرت RFC 2683 لاحقاً من تحويل تسامح بعض الخوادم إلى إذن: قبول خادم لأمر قديم لا يجعل إرساله ممارسة صحيحة. وفصلت RFC 2061 نصائح التوافق عن متطلبات IMAP الأساسية، وأوصت بعدم إعادة أوامر bboard حتى في برمجيات تدعم عملاء قدامى. التسامح ممر خروج، لا تجديد للغة.

احتفظت RFC 3501 بـRFC 2062 كسياق تاريخي. وجعلت RFC 9051 اختيار IMAP4rev1 أو IMAP4rev2 مرئياً عبر القدرات وENABLE IMAP4rev2. والخادم الذي يعلن النسختين لا يعيد عادة الصيغ المحذوفة إلا استجابة لسلوك يطلبه عميل rev1. هذا تشابه هندسي لاحق، وليس إثباتاً لعلاقة سببية مباشرة.

عملياً، نجاح اختبار المحلل يثبت قابلية الاستقبال فقط، ولا يثبت أن المكوّن مهيأ للإرسال. قبول FIND لا يثبت أن على العميل استخدامه. ووجود اسم قدرة في سجل IANA لا يثبت الانتشار أو ما عبر اتصالاً بعينه.

يحتاج التقاعد القابل للإثبات إلى أربعة سجلات مستقلة: صياغة الإدخال المقبولة، وصياغة الإخراج المختارة، والنمط المتفاوض عليه، والبايتات المرصودة على السلك. يُوقف الإخراج القديم أولاً، ثم يُقاس الإدخال المتبقي، وتُحصر الاستثناءات بأطراف محددة، وأخيراً يُزال المحلل بعد زوال الحاجة المثبتة. عندئذ يخدم التوافق الانتقال بدلاً من منح الماضي سلطة دائمة.

المصادر