رأس ترقية HTTP/1.1

حقل رأس الترقية هو حقل رأس HTTP تم تقديمه في HTTP/1.1 . في عملية التبادل، يبدأ العميل بإرسال طلب نصي واضح ، والذي يتم ترقيته لاحقًا إلى إصدار أحدث من بروتوكول HTTP أو التبديل إلى بروتوكول مختلف. يجب على العميل طلب ترقية الاتصال؛ وإذا أراد الخادم فرض الترقية، فقد يرسل 426 Upgrade Requiredاستجابة. يمكن للعميل بعد ذلك إرسال طلب جديد مع رؤوس الترقية المناسبة مع إبقاء الاتصال مفتوحًا.

استخدم مع بروتوكول TLS

يتمثل أحد استخداماته في بدء طلب على منفذ HTTP العادي ثم التبديل إلى بروتوكول أمان طبقة النقل (TLS) كما هو موضح في RFC 2817. عمليًا، يُعد هذا الاستخدام نادرًا، حيث يُعتبر HTTPS طريقة أكثر شيوعًا لبدء اتصال HTTP مشفر. 

يقوم الخادم بإرجاع 426رمز حالة لتنبيه العملاء القدامى بأن الفشل كان مرتبطًا بالعميل ( 400تشير رموز المستوى إلى فشل العميل).

تُعد هذه الطريقة لإنشاء اتصال آمن مفيدة لأنها:

إذا كانت نفس الموارد متاحة من الخادم عبر كل من الوسائل الآمنة المشفرة والوسائل الواضحة غير المشفرة، فقد يحتفظ الوسيط باتصال غير مشفر وغير مصادق عليه مع العميل مع الحفاظ على اتصال مشفر مع الخادم.

تشمل عيوب هذه الطريقة ما يلي:

  • لا يمكن للعميل تحديد متطلبات بروتوكول HTTP الآمن في عنوان URI (مع أن بإمكان العميل اشتراط ذلك عبر عملية التفاوض على الترقية)؛ و
  • بما أن بروتوكول HTTP يتم تعريفه على أساس القفزة ، فقد يكون من الضروري استخدام نفق HTTP لتجاوز خوادم الوكيل.

استخدم مع WebSocket

يستخدم بروتوكول WebSocket هذه الآلية أيضًا لإنشاء اتصال مع خادم HTTP بطريقة متوافقة. [ 1 ] يتكون بروتوكول WebSocket من جزأين: مصافحة لإنشاء الاتصال المُحسَّن، ثم نقل البيانات الفعلي. أولًا، يطلب العميل اتصال WebSocket باستخدام ترويسة `<websocket>` Upgrade: websocketو`< Connection: Upgradewebsocket>`، بالإضافة إلى بعض الترويسات الخاصة بالبروتوكول لتحديد الإصدار المستخدم وإعداد المصافحة. إذا كان الخادم يدعم البروتوكول، فإنه يرد بنفس ترويسة ` <websocket> Upgrade: websocket` و` Connection: Upgrade<websocket>` ويُكمل المصافحة. [ 2 ] بمجرد اكتمال المصافحة بنجاح، يبدأ نقل البيانات.

استخدم مع HTTP/2

تُستخدم آلية ترقية HTTP لإنشاء اتصال HTTP/2 بدءًا من HTTP العادي. [ 3 ] يبدأ العميل اتصال HTTP/1.1 ويرسل Upgrade: h2cترويسة. إذا كان الخادم يدعم HTTP/2، فإنه يرد برمز حالة HTTP 101 (بروتوكول التبديل) . تُستخدم آلية ترقية HTTP فقط مع HTTP/2 غير المشفر (h2c). أما في حالة HTTP/2 عبر TLS (h2)، فيُستخدم امتداد بروتوكول ALPN TLS بدلاً من ذلك.

انظر أيضاً

مراجع

  1. فيت، آي.؛ ميلنيكوف، أ. (2011). "بروتوكول WebSocket" . IETF. doi : 10.17487/RFC6455 . تاريخ الاسترجاع: 15 ديسمبر 2013 .{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal=
  2. رايمور، برايان. "WebSockets: مستقر وجاهز للمطورين" . شبكة مطوري مايكروسوفت. مؤرشف من الأصل في 16 ديسمبر 2013. تم الاطلاع عليه في 15 ديسمبر 2013 .
  3. "بدء تشغيل HTTP/2 لعناوين URI التي تبدأ بـ "http" . بروتوكول نقل النص التشعبي الإصدار 2 (HTTP/2) . IETF . doi : 10.17487/RFC7540 . RFC 7540 .
  • سجل رموز ترقية بروتوكول نقل النص التشعبي (HTTP) في IANA