الخلاصة
- يضع
DELEعلامة داخل حالة TRANSACTION المقفلة ولا يزيل الرسالة؛ ويستطيعRSETرفع العلامات كلها قبل الخروج الطبيعي. - لا تدخل الجلسة UPDATE إلا بعد
QUITمن العميل في TRANSACTION. الانقطاع غير الطبيعي لا يحذف شيئاً، لكن فشل UPDATE قد يترك نتيجة جزئية.
لم يكن لانقطاع الخط حق اتخاذ القرار
يتصل حاسوب عبر الهاتف، ينزّل رسائل ويطلب حذف أصولها. ينقطع الخط قبل كتابة الأخيرة على القرص. لو نفذ كل DELE فوراً، لأزالت العلة نفسها النسخة البعيدة ومنعت حفظ النسخة المحلية.
فصل POP3 النية عن الأثر. بعد DELE يرفض الخادم الإشارة إلى رقم الرسالة في بقية الجلسة، لكنها تبقى في maildrop. يلغي RSET العلامات. وحده QUIT من حالة العمل يفتح UPDATE ومحاولة الإزالة.
يعرف الخادم أنه أرسل البايتات، ولا يعرف أن الطرف الآخر حفظها. الختام الطبيعي إشارة مشتركة محدودة؛ أما صمت TCP والمهلة فلا يتحولان إلى سلطة مدمرة.
سبق الإقرار بالاستلام اسم POP3
فرّق RFC 918 سنة 1984 بين RETR وRDEL. يرسل العميل RCVD بعد الاستلام، ثم يحاول الخادم الحذف، بينما يلغي RSET المعاملة ويفك القفل.
وفي POP2 جعل RFC 937 أمر ACKD يؤكد الاستلام ويضع علامة حذف، وتأخر التغيير الحقيقي حتى تحرير صندوق البريد عند نهاية الجلسة أو اختيار صندوق آخر.
تغيرت الأوامر وبقي الفرق: إرسال البيانات لا يساوي امتلاك الطرف الآخر نسخة دائمة في شبكة متقطعة.
رتبت ثلاث حالات السلطة
عرّف RFC 1081 سنة 1988 حالات AUTHORIZATION وTRANSACTION وUPDATE. بعد التوثيق يأخذ الخادم قفلاً حصرياً. في TRANSACTION يسرد العميل ويسترجع ويعلّم؛ وعند QUIT يدخل UPDATE ويحاول الحذف ثم يفك القفل ويغلق TCP.
تقرر AUTHORIZATION الدخول، وتحفظ TRANSACTION رؤية مستقرة قابلة للتراجع، وينفذ UPDATE الأثر غير القابل للعكس. لذلك ينهي QUIT قبل التوثيق الجلسة فقط.
كان RSET من الأوامر الدنيا الإلزامية، فيرفع العلامات كلها عند امتلاء التخزين المحلي أو فشل المعالجة أو تغير سياسة الاحتفاظ. وبيّن RFC 1725 أن القفل يمنع، عند الحاجة، تعديل الرسائل أو إزالتها قبل UPDATE.
النهاية غير الطبيعية تحفظ كل الرسائل
نص RFC 1725 على أن أي نهاية غير QUIT صادر من العميل لا تدخل UPDATE ولا تزيل رسالة، وينطبق ذلك على الخروج الآلي بسبب الخمول.
حافظ RFC 1939، معيار STD 53 لعام 1996، على القاعدة وشرح السبب: ربما لم يستلم العميل الرسائل أو يخزنها بنجاح. لا يثبت البروتوكول حالة القرص، لكنه يختار الخطأ القابل للإصلاح. يمكن تسوية النسخة المكررة، أما ضياع النسخة الوحيدة فقد لا يعالج.
كان QUIT بوابة التزام لا ذرية
في UPDATE يحاول الخادم إزالة كل رسالة معلّمة. عند نقص الموارد أو خطأ آخر قد يزيل بعضها أو كلها أو لا يزيل شيئاً. ولا يجوز أن يمس رسالة بلا علامة. ثم يفك القفل ويغلق الاتصال مهما كانت النتيجة.
لذلك يشبه QUIT بوابة تفويض، لا معاملة كلّ أو لا شيء. قبلها يمكن التراجع ويحفظ الانقطاع الجميع؛ بعدها قد تكون النتيجة جزئية، وقد يجهل العميل ما حدث إذا ضاع الرد الأخير. و+OK بعد DELE يعني قبول العلامة، لا زوال النسخة.
ظلت سياسة الاحتفاظ تابعة لـ UPDATE
عرّف RFC 2449 قدرة EXPIRE. تعلن EXPIRE NEVER عدم الحذف بهذه السياسة، وتسمح EXPIRE 0 باعتبار الرسائل المسترجعة معلّمة ضمنياً عند دخول UPDATE. تغير الإضافة مجموعة العلامات ولا تجعل الاسترجاع أو الانقطاع حذفاً فورياً.
حمى الوداع الحيازة لا المجاملة
يعرف العميل نهاية تسلسله، ويعرف الخادم نتيجة التخزين، ولا تستطيع الشبكة سوى المقاطعة. وضع POP3 ثمن الشك في التكرار والمراجعة لا في الفقد الصامت: علامة، ثم إمكان التراجع، ثم عبور صريح، ثم محاولة وإقرار بالنتيجة الجزئية.
المصادر والحدود
يرجع الأصل إلى RFC 918 وRFC 937، ويبدأ POP3 في RFC 1081 ويستمر في RFC 1225 وRFC 1460. يوضح RFC 1725 الانقطاع، ويحدد RFC 1939 القاعدة والفشل الجزئي، ويضيف RFC 2449 EXPIRE. لا تثبت هذه النصوص الانتشار الحالي أو سلوك منتج أو حذفاً ذرياً أو مرة واحدة بالضبط.
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
