بازگشت به کتابخانهکتابخانه13.1HTTP/1.1 تا HTTP/3 و QUIC
طراحی سیستم نرم‌افزاریSYSTEM DESIGNاز صفر تا تسلط
v1.0.0
01مبانی و تصویر بزرگ
02Scalability و ظرفیت
03لایه داده
04Cache، Queue و جریان
05معماری نرم‌افزار
06قابلیت اطمینان و عملیات
07متد طراحی
08Case Study های واقعی
09سیستم‌های توزیع‌شده عمیق
10مهندسی تولید: داده، امنیت و کارایی
11تمرین پیشرفته و کیس‌استادی‌های مکمل
12زیر کاپوت دیتابیس و معماری داده
13وب بلادرنگ و پروتکل‌های مدرن
14سیستم‌های توزیع‌شده پیشرفته
15SaaS ،SRE ،امنیت و شبکه پیشرفته
16طراحی سیستم در عصر AI
17Case Study های تکمیلی
LESSON 13.1فصل ۱۳وب بلادرنگ و پروتکل‌های مدرن

HTTP/1.1 تا HTTP/3 و QUIC

  • ~۱۳ دقیقه
  • ۴ پرسش
  • متن را انتخاب کن تا هایلایت شود

HTTP همان پروتکلی است که در فصل ۱ دیدیم — اما سه نسل آن آن‌قدر فرق دارند که تصمیم‌های معماری را عوض می‌کنند: چند اتصال باز کنیم؟ چرا push لحظه‌ای با HTTP معمولی نمی‌شود؟ و چرا موبایل با اینترنت قطع‌ووصل از HTTP/3 سود می‌برد؟

هر نسل چه دردی را دوا کرد

نسخهنوآوری کلیدیدردی که ماند
HTTP/1.1keep-alive: استفاده مجدد از یک اتصال TCP برای چند درخواستیک اتصال = یک درخواست در لحظه؛ مرورگرها برای موازی‌سازی ۶ اتصال باز می‌کنند
HTTP/2فریم باینری + multiplexing: صدها stream همزمان روی یک اتصال TCP؛ فشرده‌سازی هدر (HPACK)Head-of-Line Blocking در لایه TCP: گم‌شدن یک بسته، همه stream ها را معطل می‌کند
HTTP/3روی QUIC (به‌جای TCP): stream های مستقل روی UDP، handshake ترکیبی 1-RTT، مهاجرت اتصالپشتیبانی زیرساخت میانی (پروکسی‌ها/فایروال‌ها) هنوز در حال رسیدن

QUIC چرا مهم است

  • در TCP، بسته گم‌شده همه صف پشت سرش را نگه می‌دارد (HOL blocking)؛ در QUIC هر stream مستقل است — فقط همان stream صبر می‌کند.
  • Connection Migration: اتصال با یک ID شناخته می‌شود نه با IP/port — وقتی موبایل از WiFi به اینترنت همراه می‌رود، اتصال زنده می‌ماند.
  • TLS 1.3 در QUIC تعبیه شده: handshake اول 1-RTT (به‌جای 2-3 رفت‌وبرگشت TCP+TLS قدیمی) و اتصال‌های بعدی 0-RTT.
  • 0-RTT را با دقت بکار ببر: درخواست‌های replayable هستند — هرگز برای عملیات غیر-idempotent (پرداخت!) 0-RTT نگذار.

پیامد معماری

  • عادت‌های دوران HTTP/1.1 مثل domain sharding و sprite و concat کردن فایل‌ها در دنیای HTTP/2+ ضدبهره‌وری‌اند — یک اتصال multiplexed کافی است.
  • برای API داخلی سرویس‌ها، HTTP/2 بستر gRPC است (درس ۴۱)؛ برای وب مدرن، CDN ها (Cloudflare و…) HTTP/3 را لبه می‌دهند و به origin با HTTP/1.1/2 حرف می‌زنند.
  • متریک‌ها را per-پروتکل ببین: سهم کاربران HTTP/3 و تأثیرش بر TTFB را در CDN گزارش بگیر.

به زبان ساده

HTTP/2 چند درخواست را روی یک اتصال قاطی می‌کند و HTTP/3 با QUIC روی UDP حتی قطع‌شدن اینترنت موبایل را هم نرم می‌کند.

مثال واقعی

وقتی از وای‌فای خانه به آنتن سیمکارت سوار می‌شوی، دانلود با TCP قطع می‌شود؛ با QUIC اتصال با همان شناسه ادامه پیدا می‌کند و ویدیو نمی‌پرد.

دانش‌سنجی

آزمون درس

۴ Q
01
مشکل اصلی HTTP/2 روی TCP چیست؟
02
کاربر موبایل از WiFi به 4G می‌رود. کدام قابلیت QUIC اتصال را زنده نگه می‌دارد؟
03
چرا درخواست 0-RTT نباید عملیات غیر-idempotent حمل کند؟
04
در دنیای HTTP/2+، تکنیک domain sharding (توزیع منابع روی چند ساب‌دامین)…