هذه القيم ليست تهجئات متنافسة لنمط واحد:

Connection: Upgrade
Connection: keep-alive, Upgrade

تسرد القيمة الثانية خياري اتصال. يعرّف HTTP الترويسة Connection على أنها قائمة مفصولة بفواصل، بأسماء خيارات لا تميّز بين الأحرف الكبيرة والصغيرة. والشيفرة التي تقارن القيمة كاملة بالسلسلة Upgrade حرفيًا تفوتها قائمة صالحة تحتوي ذلك الخيار.

في إعادة التوجيه العادية، يحلّل الوسيط البرمجي في HTTP الحقل الوارد، ويزيل الحقول التي تسمّيها خياراته، ثم يزيل Connection نفسه أو يستبدله بخيارات التحكم الخاصة به للاتصال التالي.

إزالة حقل Keep-Alive المضمّن في الشيفرة وحدها لا تكفي. فقد تسمّي رسالة حقلًا آخر خاصًا بالاتصال داخل القائمة، ويجب ألا يتسرّب ذلك الحقل إلى إعادة التوجيه العادية.

يتطلب دعم ترقية البروتوكول تعاملًا مقصودًا مع الاتصالين والبروتوكول الجديد. ونسخ ترويسات Upgrade الواردة بشكل أعمى ليس تنفيذًا لعملية التسليم تلك.

عندما يعمل متصفح ويفشل آخر، قارن قيم الحقول الفعلية على جانبي الوسيط. فالفرق بين رمز واحد وقائمة من رمزين قد يكشف خطأ في المحلّل دون أن يُطلب من المتصفح محاكاة تنسيق متصفح آخر بدقة.

يتعلق هذا برسائل HTTP التي يحلّلها الوكيل. أما نفق HTTPS CONNECT العادي فلا يعرّض حقل Connection الخاص بالموقع المشفّر لذلك الوكيل.

مقالات ذات صلة