HTTP/2 — نسل دوم HTTP

همان معنای HTTP با قالب دودویی: همهٔ درخواست‌ها روی یک اتصال و در جریان‌های موازی می‌روند و سرآیندها با HPACK فشرده می‌شوند.

  • لایهٔ OSI: 7 (کاربرد)
  • انتقال: TCP (با TLS)
  • پورت: 443
  • استاندارد: RFC 9113 / 7541
  • سطح: متوسط · حدود 8 دقیقه

نکته‌های کلیدی

  • قالب دودویی و قاب‌بندی‌شده؛ همهٔ درخواست‌ها روی یک اتصال TCP در جریان‌های موازی.
  • HPACK سرآیندها را با جدول ایستا، جدول پویا و کد هافمن فشرده می‌کند.
  • انسداد سر صف در سطح TCP هنوز باقی است؛ HTTP/3 آن را با QUIC حل کرد.

مراحل شبیه‌سازی (8 بسته)

  1. Preface + SETTINGS: پس از انتخاب h2 در ALPN، مرورگر یک رشتهٔ ثابت ۲۴ بایتی و سپس تنظیمات خود را می‌فرستد.
  2. SETTINGS + ACK: سرور تنظیمات خود را می‌فرستد و دریافت تنظیمات مرورگر را با پرچم ACK تأیید می‌کند.
  3. HEADERS · جریان ۱: درخواست صفحه در جریان ۱. سرآیندهای رایج با یک بایت از جدول ایستای HPACK فرستاده می‌شوند.
  4. HEADERS · جریان ۳: بدون صبر برای پاسخ، درخواست فایل CSS در جریان ۳ می‌رود. :authority حالا فقط یک بایت از جدول پویا (اندیس ۶۲) است.
  5. HEADERS پاسخ: سرور پاسخ جریان ۱ را می‌فرستد: :status 200 فقط یک بایت است.
  6. DATA درهم: قاب‌های دادهٔ دو جریان روی یک اتصال TCP درهم ارسال می‌شوند؛ هیچ پاسخی منتظر دیگری نمی‌ماند.
  7. WINDOW_UPDATE: کنترل جریان: مرورگر اعلام می‌کند می‌تواند یک مگابایت دیگر دریافت کند.
  8. GOAWAY: بستن مؤدبانه: آخرین جریان پردازش‌شده و کد خطای صفر اعلام می‌شود.

درس‌های مرتبط

  • Wi‑Fi — شبکهٔ بی‌سیم 802.11
  • DHCP — پیکربندی پویای میزبان
  • ARP — پروتکل تفکیک آدرس
  • DNS — سامانهٔ نام دامنه
  • TCP — پروتکل کنترل انتقال
  • TLS 1.3 — امنیت لایهٔ انتقال
  • HTTP/1.1 — پروتکل انتقال ابرمتن
  • HTTPS — HTTP امن روی TLS