انتقل إلى محتوى الدرس
الدرس 71
دورة تكنولوجيا الويب

إصدارات بروتوكول HTTPHTTP Versions

تتبّع مسيرة تطور أجيال بروتوكول HTTP الخمسة: من السطر الواحد في HTTP/0.9 وإضافة الرؤوس في HTTP/1.0 والاتصالات المستمرة في HTTP/1.1، إلى الإطارات الثنائية وتعدد التدفقات وضغط HPACK في HTTP/2، وصولاً إلى HTTP/3 فوق QUIC/UDP.
أقسام الدرس
10
الأمثلة
4
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
0
محتوى الدرس
في هذا الدرس 10تصفّح المواضيع

بعد أن أتقنّا عبر الدروس الستة عشر الماضية جميع المفاهيم الأساسية لبروتوكول HTTP—من الروابط وطرق الطلب وأكواد الحالة وحقول الرأس والكوكيز والمصادقة والكاش وصولاً إلى تشفير —نصل في هذا الدرس الختامي إلى تتبع مسيرة تطور إصدارات البروتوكول الخمسة عبر ثلاثة عقود؛ من البدايات البسيطة في و واستقرار ، وصولاً إلى ثورة الإطارات الثنائية في والجيل الأحدث العامل فوق بروتوكول .

قبل الغوص في التفاصيل الهندسية، استعرض جدول المصطلحات التقنية الأساسية لهذا الدرس:

المصطلح بالعربية المصطلح بالإنجليزية النطق التقني المعنى الهندسي المبسط
تعطيل (حجب) رأس الطابور هيد أوف لاين بلوكينج تأخر معالجة الطلبات أو الحزم الجاهزة في الطابور بسبب انتظار اكتمال طلب بطيء أو إعادة إرسال حزمة مفقودة أمامها.
طبقة التأطير الثنائي باينري فريمينج لاير تقسيم رسائل HTTP في الإصدار HTTP/2 إلى إطارات ثنائية صغيرة ومفهرسة بدلاً من النص الخام المتصل.
تعدد التدفقات المتوازية ستريم مالتيبليكسينج إرسال واستقبال عشرات الطلبات والاستجابات بالتوازي في اللحظة نفسها فوق اتصال شبكي واحد دون انتظار.
حقول الرأس الزائفة سودو هيدرز حقول خاصة في HTTP/2 وHTTP/3 تبدأ بنقطتين مثل :method و:path و:status تحل محل سطر البداية النصي.
ضغط رؤوس الرسالة إتش باك / كيو باك خوارزميات ضغط مخصصة في HTTP/2 وHTTP/3 تمنع تكرار إرسال حقول الرأس المتشابهة في كل طلب.
بروتوكول النقل QUIC كويك بروتوكول بروتوكول نقل حديث يعمل فوق UDP ويدمج تشفير TLS 1.3 وتعدد التدفقات المستقلة لتشغيل HTTP/3.

لماذا احتاج بروتوكول إلى خمسة أجيال متتالية منذ عام 1991 وحتى اليوم؟ لأن طبيعة «صفحة الويب» تغيرت جذرياً:

  • صفحة الويب عام 1991: كانت مجرد مستند نصي واحد بحجم بضعة كيلوبايتات يخلو تماماً من الصور وملفات التنسيق والسكربتات.
  • تطبيق الويب الحديث: يتألف اليوم من 80 إلى 150 ملفاً ومورداً منفصلاً في الصفحة الواحدة (ملفات و و وخطوط وأيقونات وطلبات ).

ومن الحقائق المعمارية البديعة أنه بينما ظلّت دلالات البروتوكول العليا (: طرق الطلب، وأكواد الحالة، وحقول الرأس، والكوكيز، والكاش) ثابتة ومشتركة، أعاد المهندسون تصميم طبقة النقل على السلك جيلًا بعد جيل لتقليل زمن التأخير وإلغاء الاختناقات. تأمل المخطط الزمني الآتي لتطور الإصدارات الخمسة:

مخطط تطوري يقارن بين أجيال بروتوكول HTTP الخمسة من HTTP/0.9 وHTTP/1.0 وHTTP/1.1 إلى HTTP/2 وHTTP/3

صمّم تيم بيرنرز لي الإصدار الأول من البروتوكول عام 1991 في مختبر (وسُمّي لاحقاً بأثر رجعي لتمييزه عما تلاه). وقد عُرف تاريخياً بلقب بروتوكول السطر الواحد () لبساطته الشديدة:

  • طريقة طلب وحيدة (): يفتح العميل اتصال ويرسل سطراً واحداً فقط يضم كلمة متبوعة بمسار الصفحة، حتى دون كتابة رقم إصدار البروتوكول!
  • غياب تام لحقول الرأس وأكواد الحالة: لم تكن هناك أي حقول رأس في الطلب أو الاستجابة، ولا أكواد حالة مثل أو ، ولا أنواع وسائط .
  • نصوص HTML فقط وإغلاق فوري للاتصال: يرد الخادم بإرسال نص مباشرة ثم يغلق اتصال فوراً للإشارة إلى انتهاء الملف.
نص
# Complete HTTP/0.9 Request (1 Line, No Version, No Headers):
GET /hypertext/WWW/TheProject.html

# Complete HTTP/0.9 Response (No Status Line, No Headers, Closes TCP):
<html>
  <head><title>The World Wide Web Project</title></head>
  <body><p>Welcome to CERN WWW.</p></body>
</html>

مع ظهور المتصفحات الرسومية الأولى ورغبة المستخدمين في نقل الصور والنماذج التفاعلية، صدر الإصدار عام 1996 (في وثيقة ) ليحدث نقلة معمارية كبرى أرست شكل الرسالة المعروف اليوم:

  • إضافة رقم الإصدار وأكواد الحالة: ظهر رمز الإصدار في سطر الطلب، وسطْر الحالة المؤلف من كود ثلاثي الخانات مثل في بداية الاستجابة.
  • ابتكار حقول الرأس وأنواع الوسائط (): أُضيفت حقول الرأس () مما سمح بنقل الصور والملفات المضغوطة والخطوط وليس نصوص وحدها.
  • إضافة طريقتي و: لإرسال بيانات النماذج وفحص الرؤوس.
  • القيد الهندسي الأبرز في : كان يفتح افتراضياً اتصال جديداً ومستقلاً لكل ملف فرعي ثم يغلقه فور انتهاء الملف، مما أرهق الشبكة بعشرات المصافحات المتكررة لتحميل صفحة واحدة!
نص
GET /logo.gif HTTP/1.0
User-Agent: Mozilla/1.2N (Windows)
Accept: image/gif, image/jpeg, */*

HTTP/1.0 200 OK
Server: CERN/3.0
Content-Type: image/gif
Content-Length: 3420

صدر الإصدار القياسي عام 1997 ( ثم و) ليعالج عيوب الجوهرية ويصبح العمود الفقري المستقر للويب لأكثر من عقدين بفضل أربع إضافات حاسمة:

  • 1. الاتصالات المستمرة افتراضياً (): يبقى اتصال مفتوحاً تلقائياً لإرسال عشرات الطلبات المتتالية دون هدر الوقت في إعادة فتح الاتصال مع كل ملف.
  • 2. إلزامية حقل الرأس (الاستضافة المشتركة): فرض وجود حقل في كل طلب، مما أتاح استضافة مئات المواقع المختلفة على عنوان خادم واحد.
  • 3. النقل المجزأ والكاش المتقدم: أضاف آلية لبث الصفحات الديناميكية، ومنظومة و القياسية.
  • 4. استكمال طرق الطلب القياسية: اعتمد رسمياً طرق و و و.

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

بما أن رسائل تُرسل كنص متصل واحد لا يحمل أرقام تعريف مستقلة، لا يستطيع اتصال الواحد سوى معالجة طلب واحد فقط وانتظار استجابته بالكامل قبل البدء بالطلب الذي يليه؛ فإذا استغرق الطلب الأول ، تظل الطلبات الصغرى الجاهزة خلفه معطلة تماماً في الطابور، تماماً كصف انتظار خلف عربة بطيئة في صندوق محاسبة وحيد!

  • لماذا فشلت تقنية ؟ حاول المعيار السماح بإرسال عدة طلبات متتابعة، لكن الخادم ظل ملزماً بإرجاع الردود بنفس الترتيب المتسلسل الصارم، كما أساءت الخوادم الوسيطة التعامل معها فتم تعطيلها في المتصفحات.
  • الحل الالتفافي في المتصفحات (فتح 6 اتصالات متوازية): للتخفيف من هذا الاختناق، اضطرت المتصفحات إلى فتح ما يصل إلى 6 اتصالات منفصلة لكل نطاق، مما ضاعف استهلاك الذاكرة والمصافحات.
مخطط معماري يقارن بين تعطيل الطابور التسلسلي في HTTP/1.1 وتعدد التدفقات في HTTP/2 فوق TCP واستقلالية التدفقات في HTTP/3 فوق QUIC/UDP

اعتُمد الإصدار رسمياً عام 2015 ( وحُدّث في عام 2022) انطلاقاً من مشروع التجريبي، وحلّ جذرياً مشكلة تعطيل الطابور في طبقة التطبيقات عبر ابتكار طبقة التأطير الثنائي ():

  • من السطور النصية إلى الإطارات الثنائية: بدلاً من إرسال الرسالة كنص طويل متصل مفصول بأسطر جديدة ، يقسّم كل رسالة إلى وحدات ثنائية صغيرة فائقة السرعة في التحليل الآلي؛ وهي إطار الرؤوس () وإطارات البيانات ().
  • التدفقات وأرقام التعريف (): يُعطى كل زوج (طلب/استجابة) رقم تدفق فريداً مثل و. ولأن كل إطار ثنائي يحمل رقم التدفق الخاص به، يمكن خلط إطارات عشرات الملفات على سلك واحد ثم إعادة تجميع كل ملف بدقة لدى الطرف المستقبل!

عندما تفحص طلباً يعمل بإصدار أو داخل تبويب في أدوات المطورين أو عبر الأمر ، ستلاحظ ظهور حقول خاصة في الصدارة تبدأ بعلامة النقطتين الرأسيتين (). وبما أن ألغى سطر البداية النصي التقليدي، فقد استعاض عنه بخمسة حقول رأس زائفة قياسية ():

  • الحقل (في الطلب): يحدد طريقة الطلب مثل أو .
  • الحقل (في الطلب): يحدد مخطط البروتوكول مثل .
  • الحقل (في الطلب): يحدد اسم النطاق والمنفذ مثل (بديلاً عن حقل في ).
  • الحقل (في الطلب): يحدد المسار ومعلمات الاستعلام مثل .
  • الحقل (في الاستجابة): يحمل رقم كود الحالة فقط مثل أو (حيث ألغى العبارة الوصفية النصية مثل لتوفير البيانات).
نص
# HTTP/1.1 Textual Start-Line + Host Header:
GET /tutorials/web-technology HTTP/1.1
Host: www.closetag.com
Accept: text/html

# Equivalent HTTP/2 Request Shown in DevTools (Pseudo-Headers):
:method: GET
:scheme: https
:authority: www.closetag.com
:path: /tutorials/web-technology
accept: text/html

بفضل طبقة التأطير الثنائي، قدّم إصدار قفزتين هائلتين في الأداء فوق اتصال مشفر واحد فقط:

  • 1. تعدد التدفقات المتوازية (): يفتح المتصفح اتصال وحيداً مع النطاق، ويرسل عبره عشرات الطلبات بالتوازي في اللحظة نفسها. فإذا تأخر تجهيز ملف في التدفق رقم 1، تمر إطارات التدفقين 3 و5 بجانبه فوراً دون أي انتظار!
  • 2. ضغط حقول الرأس بخوارزمية : في كان المتصفح يعيد إرسال مئات البايتات المتكررة من حقول و كنص غير مضغوط مع كل صورة وملف. أما فيستخدم خوارزمية التي تحفظ الرؤوس المتكررة في جدول مشترك وترسل أرقام فهرستها فقط، مما يقلص حجم الرؤوس بأكثر من 85%!

إذا كان قد نجح في حل مشكلة تعطيل الطابور في طبقة التطبيقات، فلماذا ابتُكر الإصدار الأحدث (المعتمد في عام 2022)؟ لأن يظل محمولاً فوق اتصال واحد، مما يعرضه لمشكلة تعطيل الطابور على مستوى طبقة النقل ()!

فطبقة في نظام التشغيل لا تفرق بين تدفقات المختلفة؛ ولذلك إذا ضاعت حزمة شبكية واحدة فقط بسبب تذبذب شبكة الهاتف أو الواي فاي، يقوم بروتوكول بتجميد جميع التدفقات السليمة الأخرى ريثما يُعاد إرسال تلك الحزمة المفقودة!

جاء ليقضي على هذا الاختناق الأخير عبر استبدال ببروتوكول النقل الحديث () المبني فوق :

  • 1. استقلالية تامة للتدفقات بلا تعطيل طابور: يدير بروتوكول الموثوقية وترتيب الحزم لكل تدفق على حدة فوق . فإذا فُقدت حزمة تخص التدفق رقم 1، ينتظر التدفق رقم 1 وحده بينما تواصل التدفقات 3 و5 عملها فوراً دون توقف!
  • 2. دمج تشفير ومصافحة فائقة السرعة (): بدلاً من إجراء مصافحة ثم مصافحة بعدها، يدمج مصافحة النقل والتشفير معاً في خطوة واحدة ( أو للزيارات المتكررة).
  • 3. انتقال الاتصال السلس بين الشبكات (): يعتمد على معرّف اتصال رقمي ()، فلا ينقطع الاتصال عند انتقال هاتفك من شبكة الواي فاي إلى بيانات الجيل الخامس !

يمكنك معاينة إصدار البروتوكول الفعلي لأي طلب في المتصفح عملياً الآن: افتح تبويب في أدوات المطورين، وانقر بزر الفأرة الأيمن على شريط عناوين الأعمدة وفعّل عمود لترى أحد الرموز الثلاثة:

  • الرمز : رسائل نصية فوق (طلب واحد في كل مرة على الاتصال، بدون ضغط لحقول الرأس).
  • الرمز (): إطارات ثنائية فوق مع تعدد التدفقات المتوازية، وحقول الرأس الزائفة، وضغط الرؤوس .
  • الرمز (): إطارات ثنائية فوق مع استقلالية تامة للتدفقات عند فقدان الحزم، وضغط ، ويُكتشف عبر حقل الرأس .
Shell
# 1. Force HTTP/1.1 and inspect text start-line & headers:
curl -I --http1.1 https://www.closetag.com

# 2. Use HTTP/2 (h2) and observe binary stream & Alt-Svc advertisement:
curl -I --http2 https://www.closetag.com
# Response includes -> alt-svc: h3=":443"; ma=86400
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

تهانينا على إتمام فصل بروتوكول HTTP بالكامل! تتبّعنا في هذا الدرس الختامي رحلة تطور البروتوكول من السطر الواحد في وإضافة الرؤوس في واستقرار ، وفهمنا مشكلة تعطيل الطابور وكيف عالجها عبر الإطارات الثنائية وتعدد التدفقات وضغط ، وصولاً إلى العامل فوق . الخطوة التالية: أصبحت الآن تمتلك أساساً هندسياً متيناً وعميقاً في بروتوكول الويب يؤهلك للانطلاق بثقة في مسارات تطوير تطبيقات الويب وبناء الواجهات البرمجية وأمن المعلومات!

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات12

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 12 مفهومةأول بطاقة، أول خطوة
01 HTTP/0.9 (One-Line Protocol) الإصدار التأسيسي HTTP/0.9
الإصدار الأول لبروتوكول HTTP عام 1991 الذي اقتصر على سطر طلب GET وحيد لإرجاع نص HTML دون رؤوس أو أكواد حالة.
للمراجعة
02 HTTP/1.0 (RFC 1945) الإصدار HTTP/1.0
إصدار عام 1996 الذي أضاف أرقام الإصدار وأكواد الحالة وحقول الرأس وأنواع MIME، مع فتح اتصال TCP منفصل لكل طلب افتراضياً.
للمراجعة
03 HTTP/1.1 (RFC 9112) الإصدار القياسي HTTP/1.1
المعيار النصي المستقر الذي اعتمد الاتصالات المستمرة افتراضياً وإلزامية حقل Host والنقل المجزأ ومنظومة الكاش القياسية.
للمراجعة
04 Head-of-Line (HOL) Blocking مشكلة تعطيل رأس الطابور
توقف معالجة الطلبات أو التدفقات الجاهزة في الطابور بسبب انتظار انتهاء طلب بطيء أو إعادة إرسال حزمة مفقودة أمامها.
للمراجعة
05 Binary Framing Layer طبقة التأطير الثنائي في HTTP/2
الطبقة الهندسية في HTTP/2 التي تقسم الرسائل إلى إطارات ثنائية صغيرة (HEADERS وDATA) تحمل أرقام تدفق مستقلة.
للمراجعة
06 Stream Multiplexing تعدد التدفقات المتوازية
إرسال واستقبال عشرات الطلبات والاستجابات بالتوازي في وقت واحد فوق اتصال شبكي وحيد دون انتظار.
للمراجعة
07 Pseudo-Header Fields حقول الرأس الزائفة
حقول التحكم المبدوءة بنقطتين (:method و:scheme و:authority و:path و:status) التي تحل محل سطر البداية النصي في HTTP/2 وHTTP/3.
للمراجعة
08 HPACK Header Compression ضغط الرؤوس HPACK
خوارزمية ضغط حقول الرأس في HTTP/2 التي تمنع تكرار إرسال الرؤوس المتشابهة في كل طلب وتقلص حجمها بفعالية.
للمراجعة
09 QUIC Transport Protocol بروتوكول النقل QUIC
بروتوكول نقل حديث يعمل فوق UDP ويدمج تشفير TLS 1.3 وتعدد التدفقات المستقلة لتشغيل إصدار HTTP/3.
للمراجعة
10 HTTP/3 (RFC 9114) الإصدار الحديث HTTP/3
الجيل الحديث من بروتوكول HTTP الذي يعمل فوق QUIC/UDP للقضاء على تعطيل الطابور عند فقدان الحزم وتسريع المصافحة.
للمراجعة
11 Connection Migration انتقال الاتصال السلس في QUIC
قدرة بروتوكول QUIC على إبقاء اتصال HTTP/3 نشطاً دون انقطاع عند انتقال الهاتف من شبكة الواي فاي إلى بيانات الهاتف عبر معرّف الاتصال.
للمراجعة
12 Alt-Svc (Alternative Services) Header حقل الإعلان عن الخدمة البديلة Alt-Svc
حقل رأس استجابة يرسله الخادم لإبلاغ المتصفح بدعمه لإصدار HTTP/3 على المنفذ 443 لترقية الاتصالات التالية.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات5

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 5 مفهومةأول بطاقة، أول خطوة
01 HOL HOL
Head-of-Line Blocking
تعطيل رأس الطابور حيث يؤخر طلب بطيء واحد أو حزمة مفقودة جميع الطلبات المنتظرة خلفه.
للمراجعة
02 HPACK HPACK
HTTP/2 Header Compression (RFC 7541)
خوارزمية ضغط حقول الرأس المخصصة لإصدار HTTP/2.
للمراجعة
03 QPACK QPACK
HTTP/3 Header Compression for QUIC (RFC 9204)
خوارزمية ضغط حقول الرأس المصممة للتدفقات المستقلة في إصدار HTTP/3 فوق QUIC.
للمراجعة
04 ALPN ALPN
Application-Layer Protocol Negotiation
امتداد في مصافحة TLS يتيح للمتصفح والخادم التفاوض الفوري لاختيار إصدار h2 أو http/1.1.
للمراجعة
05 QUIC QUIC
QUIC Transport Protocol (RFC 9000)
طبقة النقل المشفرة متعددة التدفقات فوق UDP التي يعمل فوقها إصدار HTTP/3.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/3مهام منجزة
  1. افتح تبويب Network في أدوات المطورين، وانقر بزر الفأرة الأيمن على عناوين الأعمدة لتفعيل عمود Protocol، ثم حدّث الصفحة لرصد قيم http/1.1 وh2 وh3.

  2. نفّذ الأمر curl -v -I --http2 https://www.closetag.com في الطرفية لملاحظة حقول الرأس الزائفة المبدوءة بنقطتين وحقل الإعلان عن h3 في alt-svc.

  3. لخّص الفروق الهندسية بين HTTP/1.1 وHTTP/2 وHTTP/3 من حيث بروتوكول النقل (TCP مقابل QUIC/UDP)، وبنية الرسالة (نصية مقابل ثنائية)، وتأثير فقدان حزمة واحدة على بقية التدفقات.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

12أسئلة 1أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي12 أسئلة تنتظرك
01

مع تطور إصدارات البروتوكول من HTTP/1.1 إلى HTTP/2 وHTTP/3، ماذا حدث للمفاهيم والدلالات الأساسية (طرق الطلب، أكواد الحالة، حقول الرأس، الكوكيز، والكاش)؟

02

ما الخصائص التي ميّزت الإصدار الأول HTTP/0.9 عام 1991 المعروف بـ «بروتوكول السطر الواحد»؟

03

ما الإضافات الكبرى التي قدمها الإصدار HTTP/1.0، وما القيد الأبرز في تعامله الافتراضي مع اتصالات TCP؟

04

ما الميزتان القياسيتان في HTTP/1.1 اللتان أتاحتا إعادة استخدام اتصال TCP لعدة طلبات، واستضافة عدة نطاقات مختلفة على عنوان IP واحد؟

05

ما المقصود بمشكلة تعطيل رأس الطابور (Head-of-Line Blocking) على مستوى طبقة التطبيقات في HTTP/1.1؟

06

كيف غيّرت طبقة التأطير الثنائي (Binary Framing Layer) في HTTP/2 شكل رسائل البروتوكول على السلك مقارنة بـ HTTP/1.1؟

07

ما حقول الرأس الزائفة (Pseudo-Headers) المبدوءة بنقطتين التي تحل محل سطر الطلب النصي وحقل Host في إصداري HTTP/2 وHTTP/3؟

08

ما الميزتان الهندسيتان الرئيسيتان اللتان يقدمهما تعدد التدفقات (Multiplexing) وخوارزمية HPACK في إصدار HTTP/2؟

09

لماذا انتقل الإصدار الحديث HTTP/3 من الاعتماد على بروتوكول TCP إلى بروتوكول QUIC المبني فوق UDP؟

10

ما الفرق بين سلوك HTTP/3 (فوق QUIC) وسلوك HTTP/2 (فوق TCP) عند ضياع حزمة شبكية واحدة تخص التدفق رقم 1 أثناء التصفح عبر الهاتف؟

11

ما الرموز القياسية التي تظهر في عمود "Protocol" داخل لوحة Network في أدوات المطورين للإصدارات HTTP/1.1 وHTTP/2 وHTTP/3 على الترتيب؟

12

ما حقل رأس الاستجابة الذي يرسله الخادم لإبلاغ المتصفح بأن الإصدار الحديث HTTP/3 (h3) متاح على المنفذ 443؟