الخلاصة

  • رصدت RFC 1957 عميلين يتوقعان مسافة بعد مؤشر الحالة ويفشلان عند غيابها، مع أن RFC 1939 لم تلزم بها حين لا يوجد نص إضافي.
  • كان خادم UCB المسمى popper يضيف معلومات دائماً، ولذلك أرسل المسافة دائماً حتى أصبحت عادته افتراضاً في التحليل.
  • اشترط Netscape الأمر UIDL واشترط Eudora الأمر TOP، رغم أن RFC 1939 صنفتهما أمرين اختياريين.

يمكن لرد POP3 أن يبدأ بـ+OK أو -ERR وينتهي إذا لم تكن هناك معلومات أخرى. تظهر المسافة عندما يتبع المؤشر نص إضافي. وتقول RFC 1957 بوضوح إن المسافة التي سببت المشكلة لم تكن مفروضة في RFC.

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

تسمي RFC 1957 عميل Unix القابل للنسخ بحرية popclient والمنتج المغلق netApp Systems Internet Series. لوحظ أن كليهما ينتظر المسافة ويفشل إن لم يجدها. وبذلك أصبح الخادم الذي يرسل الصيغة الأقصر المتوافقة مع النص غير متوافق عملياً مع قارئ ضيّق.

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

لم تحوّل RFC 1957 العادة إلى إلزام معياري. ذكرت أن مؤلفي العميلين جرى الاتصال بهم، وأن الإصدارات الجديدة لن تتوقع المسافة، لكنها أوصت بدعم الإصدارات القديمة. هذا حل على مرحلتين: إصلاح المستهلك كي لا يورث الافتراض، وحماية المستخدمين الحاليين مدة تكفي للانتقال. دعم القديم لا يعني إعلان الخطأ قاعدة أبدية.

يتكرر التضييق في القدرات. تضع RFC 1939 الأمرين TOP وUIDL ضمن الأوامر الاختيارية. ومع ذلك تقول RFC 1957 إن Netscape احتاج UIDL وإن Eudora احتاج TOP. ليست القضية هنا وظيفة كل أمر، بل سلطة الاختيار: ما تركته الوثيقة للخادم تحول بسبب عميل مشهور إلى شرط للقبول في السوق العملي.

وكان اكتشاف القدرات غامضاً. توضح RFC 1939 أنه لا توجد طريقة عامة تميز بين خادم لا ينفذ أمراً اختيارياً وخادم لا يريد أو لا يستطيع تنفيذه. وفي 1998 وصفت RFC 2449 مزايا اختيارية لا تُكتشف إلا بالتجربة، إن أمكن، وقدمت CAPA للإعلان عن قدرات منها TOP وUIDL. جعل ذلك الاختلاف مرئياً، لكنه لا يثبت أن RFC 1957 سببته أو أن كل البرامج تبنته.

حدود الدليل ضرورية. RFC 1957 وثيقة معلوماتية من يونيو 1996 تحدّث RFC 1939 ذات المسار المعياري. تسجل أسماء وملاحظات، لا مسحاً للسوق. لا تقدم أرقام تركيب أو تكرار أعطال أو تكلفة، ولا تقول إن popper خالف المواصفة أو إن مؤلفي العملاء تعمدوا مخالفتها.

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

المصادر