كيف يصل المتصفح إلى استخدام HTTP/2 أو HTTP/3؟
يُختار HTTP/2 (RFC 9113) داخل مصافحة TLS: يعرض المتصفح «h2» عبر ALPN (RFC 7301) فيقبله الخادم أو يعود إلى HTTP/1.1. أما HTTP/3 (RFC 9114) فيعمل فوق QUIC على UDP، لذلك يعرف المتصفح به أولاً من ترويسة Alt-Svc (RFC 7838) أو من سجل HTTPS في DNS، ثم يجرّب اتصال QUIC ويعود بصمت إلى غيره إذا كان UDP محجوباً.
كيفية استخدام فاحص HTTP/2 وHTTP/3
- أدخل العنوان النهائي للصفحة، أي الذي يجيب بالرمز 200 (https://www.example.com/ لا http://example.com الذي يعيد التوجيه فقط).
- اضغط «فحص HTTP/2 وHTTP/3» وانتظر بضع ثوانٍ ريثما يعمل المجسّ.
- اقرأ الحكمين وسببيهما في التفاصيل. وإن كان HTTP/3 مُعلَناً فتأكد من أدوات المطوّر في متصفحك (لوحة Network، عمود Protocol) أن h3 يُستخدم فعلاً.
مزايا فاحص HTTP/2 وHTTP/3
- HTTP/2 مُتحقَّق منه لا مُخمَّن: يطلب مجسّ مجتمعي واحد من Globalping صفحتك عارضاً h2 وحده في ALPN، فاكتمال الطلب يثبت HTTP/2 ورفضه يثبت غيابه
- HTTP/3 يُقرأ من ترويسة Alt-Svc (RFC 7838) في الاستجابة التي يعيدها رابطك، مع كل معرّفات البروتوكول المعلنة (h3 وh3-29 وh2…)
- «غير معروف» إجابة حقيقية: روابط http العادية وإعادات التوجيه واستجابات الخطأ والمجسّ الذي فشل والحصة المستنفدة تُعرض كلها «غير معروف» مع السبب
- يعرض موقع المجسّ وشبكته، ورمز حالة HTTP وطريقة الطلب المأخوذ كعيّنة، وترويسة Server والعنوان المحلول
- يبيّن هل يُحَل المضيف إلى شبكة Cloudflare، ويعمل مع تلك المواقع لأنه لا يحتاج إلى اتصال TCP مباشر
المدخلات والمخرجات
المدخلات
- عنوان الصفحة: عنوان http:// أو https:// لمضيف عام؛ واسم المضيف المجرد يُقرأ https. يطلب خادم متقن الرابط كاملاً، ويطلب مجسّ HTTP/2 مساره دون سلسلة الاستعلام، والمسار الذي يحوي أحرفاً ترفضها خدمة القياس يُستبدل بـ «/» وتذكر الملاحظات ذلك.
- لا شيء غير ذلك: الطريقة والترويسات والمجسّ ثابتة، ولا يُرسل أي محتوى.
المخرجات
- الملخص: HTTP/2 بعلامة ✓ مُتحقَّق أو ✗ مرفوض أو ? غير معروف؛ وHTTP/3 بعلامة ✓ مُعلَن أو ✗ غير مُعلَن أو ? لم يُحكم عليه؛ ورمز حالة HTTP وطريقة الطلب المأخوذ.
- التفاصيل: شرح الخادم لكل حكم، ومكان تشغيل مجسّ HTTP/2، وترويسة Alt-Svc الخام والبروتوكولات التي تذكرها، وترويسة Server، والعنوان المحلول وهل هو على شبكة Cloudflare.
- الملاحظات: كيف حُدد كل بروتوكول، وهل استخدم مجسّ HTTP/2 مساراً آخر.
مثال على فاحص HTTP/2 وHTTP/3
موقع يعمل بـ HTTP/2 ويعلن HTTP/3 (نتيجة توضيحية)
الإدخال:
عنوان الصفحة: https://www.example.com/النتيجة:
HTTP/2 ✓ (تحقق منه مجسّ) · HTTP/3 ✓ (مُعلَن في Alt-Svc) · حالة HTTP 200 · الطريقة HEAD
نتيجة HTTP/2: A Globalping probe completed a request over HTTP/2 (ALPN h2).
مجسّ HTTP/2: Frankfurt, DE · Hetzner Online GmbH
نتيجة HTTP/3: The response carries an Alt-Svc header that announces h3.
ترويسة Alt-Svc: h3=":443"; ma=86400 · البروتوكولات المعلنة: h3كيف تقرأ نتائج فاحص HTTP/2 وHTTP/3
✓ أمام HTTP/2 تعني أن مجسّاً أكمل طلباً عبر h2 فعلاً. و✗ تعني أن الخادم رفض اتصالاً لا يعرض إلا h2، فهو لا يتحدث فوق TLS إلا HTTP/1.1. و? تعني تعذّر الحسم هذه المرة، وسطر التفاصيل يذكر السبب.
✓ أمام HTTP/3 «مُعلَن» تعني أن استجابة https ناجحة حملت Alt-Svc فيها h3. و✗ «غير مُعلَن» تعني أن استجابة 2xx عبر https خلت منه، وهي الحالة الوحيدة التي يكون فيها الغياب دليلاً. و? «لم يُحكم عليه» تشمل http العادي واستجابات إعادة التوجيه أو الخطأ.
إعلان h3 بقيمة ma قصيرة، أو إعلانه في بعض الاستجابات دون غيرها، أمر طبيعي لدى شبكات CDN. وإذا لم يستخدم الزوار HTTP/3 قط مع أنه مُعلَن، فالسبب المعتاد جدار حماية يحجب UDP 443.
متى تستخدم فاحص HTTP/2 وHTTP/3
- التأكد من أن تفعيل HTTP/2 أو HTTP/3 على الخادم أو شبكة CDN أو موازن الأحمال قد سرى فعلاً.
- تفسير فرق الأداء بين بيئتين: بيئة الاختبار على HTTP/1.1 والإنتاج على HTTP/2.
- التحقق من أن الانتقال إلى مستضيف أو CDN جديد أبقى ترويسة Alt-Svc التي تسمح للمتصفحات باستخدام QUIC.
- التحقق من نقطة API يتوقع العملاء الوصول إليها عبر HTTP/2.
استكشاف الأخطاء وإصلاحها
- HTTP/3 «لم يُحكم عليه» مع حالة 301 أو 302: أدخل الرابط النهائي لسلسلة إعادة التوجيه (يعرضه فاحص إعادة التوجيه).
- HTTP/2 ? (لم يُتحقق منه) مع عبارة «خدمة القياس غير متاحة أو نفدت حصتها الساعية»: نفدت ميزانية Globalping المشتركة؛ أعد المحاولة لاحقاً.
- HTTP/2 مرفوض مع أن إعداد خادمك يفعّله: يجب تفعيل ALPN على نقطة إنهاء TLS التي تجيب فعلاً (موازن أحمال أو وكيل أمام الخادم)، ويحتاج h2 إلى TLS 1.2 فأحدث مع مجموعة تشفير لا يحظرها RFC 9113.
- يفشل الطلب بخطأ في التحليل أو بعبارة «cannot be reached»: ليس للمضيف عنوان عام، أو يُحَل إلى عنوان خاص أو محجوز يرفض خادم متقن الاتصال به.
الأسئلة الشائعة حول فاحص HTTP/2 وHTTP/3
كيف أعرف أن موقعي يعمل بـ HTTP/2؟
أدخل عنوان الصفحة النهائي بـ https واضغط الفحص: إذا ظهرت ✓ أمام HTTP/2 فقد أكمل مجسّ Globalping طلباً عبر h2 فعلاً. ويمكنك المقارنة بعمود Protocol في لوحة Network بأدوات المطوّر، حيث يظهر h2.
لماذا يظهر HTTP/2 «غير معروف»؟
لا يُتحقق من HTTP/2 إلا عبر مجسّ Globalping لا يعرض سوى h2. ويبقى غير معروف إذا كان الرابط http عادياً (فالمتصفحات لا تستخدم HTTP/2 إلا فوق TLS)، أو تعذّر على المجسّ إكمال الطلب، أو نفدت حصة خدمة القياس، أو لم يُجب المجسّ في الوقت. والصفحة لا تخمّن أبداً.
هل يعني «مُعلَن» أن HTTP/3 يعمل؟
يعني أن الخادم يعلن h3 في ترويسة Alt-Svc، وهذا ما يجعل المتصفح يجرّب HTTP/3 في الزيارة التالية. أما نجاح اتصال QUIC فيتوقف على انفتاح منفذ UDP 443 على الطريق، ولا يُنشأ هنا أي اتصال QUIC. وإذا فشل عادت المتصفحات بصمت إلى HTTP/2 أو HTTP/1.1.
لماذا لا يرى خادم متقن البروتوكول بنفسه؟
لأنه يعمل على Cloudflare Workers، وواجهة fetch فيها لا تكشف البروتوكول الذي تفاوض عليه الطلب. لذلك يُتحقق من HTTP/2 بمجسّ خارجي من Globalping، ويُقرأ HTTP/3 من الترويسة التي يرسلها الخادم.
لماذا لم يُحكَم على HTTP/3 في موقعي؟
كانت الاستجابة المأخوذة إعادة توجيه أو خطأ، وكثيراً ما تُرسَل هذه دون ترويسة Alt-Svc التي تحملها الصفحة العادية، فغيابها لا يثبت شيئاً. افحص الرابط النهائي الذي يجيب بـ 200، لأن إعادات التوجيه لا تُتبع.
هل يعمل مع المواقع التي تمر عبر Cloudflare؟
نعم. هذا الفحص يرسل طلبات HTTP عادية ويستعين بمجسّ Globalping، ولا يحتاج إلى اتصال TCP المباشر الذي تمنعه المنصة نحو مواقع Cloudflare، وهو ما يوقف فاحصات TLS.
ملاحظات تقنية
يُتفاوض على HTTP/2 (RFC 9113) داخل مصافحة TLS عبر ALPN (RFC 7301): يذكر العميل البروتوكولات التي يتحدثها ويختار الخادم أحدها. ومجسّ Globalping لا يعرض إلا «h2» ولا يتراجع إلى غيره، فاكتمال الطلب دليل على HTTP/2، والخطأ «HTTP/2 is not supported by the server» دليل على غيابه. ويرسل المجسّ طلب HEAD لمسار الرابط ويقرأ سطر الحالة.
يعمل HTTP/3 (RFC 9114) فوق QUIC (RFC 9000) على UDP. ويعرف المتصفح أن الخادم يقدّمه من حقل Alt-Svc (RFC 7838) في استجابة HTTP/1.1 أو HTTP/2، مثل h3=":443"; ma=86400، أو من سجل HTTPS في DNS، ثم يجرّب QUIC في الطلبات التالية. وهذه الترويسة هي ما يُقرأ هنا؛ ولا يُنشأ أي اتصال QUIC.
يرسل خادم متقن طلب HEAD أولاً، ولا يكرره بـ GET إلا إذا أجاب الخادم بـ 405 أو 501. ولا تُتبع إعادات التوجيه: ترويسة Alt-Svc على استجابة 301 لا تقول شيئاً موثوقاً عن الوجهة، لذلك لا يُحكم على HTTP/3 إلا على استجابة 2xx عبر https.
الحدود ومنهجية القياس
يُختبر HTTP/2 من مجسّ Globalping واحد حيثما تعيّنه الشبكة؛ والخادم الذي يتفاوض بحسب المنطقة أو العميل قد يتصرف بغير ذلك مع زوارك. ومعاملات القياس ونتائجه علنية على Globalping.
لا يُتصل بـ HTTP/3 أبداً: قد يفشل h3 المُعلَن لدى زوار تحجب شبكاتهم UDP. ولا يُكتشف h3 المُعلَن عبر سجل HTTPS في DNS وحده دون Alt-Svc.
تؤخذ استجابة واحدة كعيّنة، من خادم متقن على شبكة Cloudflare؛ والصفحات التي ترسل Alt-Svc لبعض العملاء أو على بعض المسارات فقط قد تظهر هنا بخلاف ما يراه المتصفح.
الأمان والخصوصية
يصل الرابط إلى خادم متقن فيطلبه مرة واحدة، ومع https يصل اسم المضيف والمسار إلى Globalping حيث تكون معاملات القياس ونتيجته علنية. لا يخزّن متقن شيئاً. لا تفحص روابط تحمل أسراراً في مسارها.
المراجع
- RFC 9113: HTTP/2بروتوكول HTTP/2: إطارات ثنائية وتدفقات متعددة على اتصال واحد، يُتفاوض عليه بمعرّف ALPN «h2» فوق TLS 1.2 أو أحدث، مع مجموعات التشفير التي يحظرها.
- RFC 9114: HTTP/3HTTP فوق QUIC: كيف يوزّع HTTP/3 الطلبات على تدفقات QUIC، وكيف يكتشفه العملاء، وغالباً عبر إعلان Alt-Svc لـ «h3».
- RFC 7838: HTTP Alternative Servicesحقل الترويسة Alt-Svc: كيف يخبر الخادم العملاء بأن المورد نفسه متاح عبر بروتوكول أو نقطة أخرى (h3=":443"; ma=86400)، وكم يجوز الاحتفاظ بهذه المعلومة.