تفاوض محتوى HTTP
تتضمن معظم استجابات HTTP كيانًا يحتوي على معلومات للتفسير من قبل المستخدم. وبطبيعة الحال ، يتم استخدامه لتزويد المستخدم بأفضل كيان متاح يتوافق مع الطلب. لسوء الحظ بالنسبة لذاكرة التخزين المؤقت والخادم ، لا يمتلك جميع المستخدمين نفس التفضيلات لما هو أفضل. لهذا السبب يحتوي HTTP على أحكام للعديد من الآليات لـ " التفاوض على المحتوى ". عندما يكون هناك العديد من التمثيلات المتاحة ، عملية اختيار أفضل تمثيل لاستجابة معينة.
قد يخضع أي رد يحتوي على هيئة كيان للتفاوض ، بما في ذلك الردود على الأخطاء.
في HTTP ، يوجد نوعان من تفاوض المحتوى ، التفاوض الذي يعتمد على الخادم ، والتفاوض القائم على الوكيل. كلا المفاوضات متعامدة وبالتالي يمكن استخدامها معًا أو بشكل منفصل. يُشار إلى إحدى طرق الدمج بالمفاوضات الشفافة التي تحدث عندما يوفر الخادم الأصلي معلومات التفاوض الذي يحركه الوكيل ، والذي يتم استخدامه بواسطة ذاكرة التخزين المؤقت لتوفير تفاوض مدفوع بالخادم للطلبات اللاحقة.
تفاوض يحركها الخادم (Server-driven Negotiation)
عند حدوث تفاوض يحركه الخادم ، يتم اختيار أفضل تمثيل للاستجابة بواسطة خوارزمية موجودة على الخادم. استنادًا إلى التمثيل المتاح للمورد ، يعتمد الاختيار والمحتويات. يعتمد التحديد أيضًا على محتويات حقول رأس معينة في رسالة الطلب أو على معلومات أخرى ، والتي تتظاهر بالطلب (مثل عنوان شبكة العميل).
مزايا
- يكون مفيدًا عندما يصعب وصف خوارزمية الاختيار من بين التمثيلات المتاحة لوكيل المستخدم.
- يكون مفيدًا عندما يرغب الخادم في إرسال "أفضل تخمين" إلى العميل مع الاستجابة الأولى.
- لتحسين تخمين الخادم ، قد يقوم وكيل المستخدم بتضمين حقول رأس الطلب التي تصف تفضيلاته لمثل هذه الاستجابة.
سلبيات
- بالنسبة للخادم ، من المستحيل تحديد ما هو الأفضل لأي مستخدم معين بدقة. لهذا السبب سيحتاج الخادم إلى معرفة كاملة بكل من قدرات وكيل المستخدم والاستخدام المقصود للاستجابة.
- إنه يعقد تنفيذ خادم الأصل والخوارزميات لتوليد استجابات للطلب.
التفاوض القائم على الوكيل(Agent-driven Negotiation)
عند حدوث تفاوض يحركه الوكيل ، يقوم وكيل المستخدم باختيار أفضل تمثيل للاستجابة بعد تلقي استجابة أولية من الخادم الأصلي. في المفاوضات التي يقودها الوكيل ، يستند التحديد إلى قائمة التمثيلات المتاحة للاستجابة ، والتي يتم تضمينها في حقول العنوان أو هيئة الكيان للاستجابة الأولية ، مع تحديد كل تمثيل بواسطة URI الخاص به. يمكن إجراء التحديد من قائمة التمثيلات يدويًا عن طريق تحديد المستخدم من قائمة تم إنشاؤها أو تلقائيًا.
مزايا
- يتم استخدامه عندما تختلف الاستجابة حسب الأبعاد شائعة الاستخدام عندما يكون الخادم الأصلي غير قادر على تحديد قدرة وكيل المستخدم على فحص الطلب.
- يتم استخدامه عندما توزع ذاكرات التخزين المؤقت العامة تحميل الخادم وتقليل استخدام الشبكة.
سلبيات
يعاني التفاوض الذي يحركه الوكيل عندما يحتاج إلى طلب ثان للحصول على أفضل تمثيل بديل.
مفاوضات شفافة
إنه مزيج من التفاوض القائم على الخادم والتفاوض القائم على الوكيل. إذا تم توفير ذاكرة التخزين المؤقت في شكل قائمة بالتمثيلات المتاحة للاستجابة وذاكرة التخزين المؤقت فهمت تمامًا بُعد التباين ، فستصبح ذاكرة التخزين المؤقت قادرة على إجراء تفاوض مدفوع بالخادم نيابة عن الخادم الأصلي.