پروتکل HTTP/3 در مقایسه با HTTP/2

پروتکل HTTP/3 برای QUIC طراحی شده است، که پروتکل انتقالی است که به خودی خود جریان‌ها را مدیریت می‌کند.

پروتکل HTTP/2 برای TCP طراحی شده است، و در نتیجه جریان‌ها را در لایه‌ی HTTP مدیریت می‌کند.

شباهت‌ها

هر دوی پروتکل‌ها به کارخواهان مجموعه‌ای از ویژگی‌های کمابیش مشابه را ارائه می‌دهند.

  • هر دو پروتکل پشتیبانی از server push را ارائه می‌دهند

  • هر دو پروتکل دارای فشرده سازی سرایند هستند، و QPACK و HPACK در طراحی شبیه هستند.

  • هر دو پروتکل توزیع بر روی یک تک-اتصال با استفاده از جریان‌ها را ارائه می‌دهند

تفاوت‌ها

تفاوت‌ها در جزئیات و عمدتاً در این حیطه هستند به لطف استفاده‌ی HTTP/3 از QUIC:

  • پروتکل HTTP/3 به لطف دست‌دهی 0-RTT پروتکلِ QUIC از داده‌ اولیه پشتیبانی بهتری می‌کند، هنگامیکه TCP Fast Open و TLS هماره داده کمتری ارسال می‌کنند و با مشکل مواجه می‌شوند.

  • پروتکل HTTP/3 به لطف QUIC در مقایسه با TCP + TLS از دست‌دهی‌های به مراتب سریع‌تری برخوردار است.

  • پروتکل HTTP/3 در نسخه‌ی نا-امن و بدون رمزگذاری وجود ندارد. پروتکل HTTP/2 می‌تواند بدون HTTPS پیاده‌سازی و استفاده شود - اگرچه در اینترنت کمتر بدین شکل دیده می‌شود.

  • پروتکل HTTP/2 می‌تواند مستقیم داخل یک دست‌دهی TLS با افزونه ALPN قرار بگیرد، حال آنکه HTTP/3 بر روی QUIC است و ازینرو ابتدا به یک پاسخ سرایند Alt-Svc: نیاز دارد تا کارخواه را از این عامل آگاه سازد.

  • پروتکل HTTP/3 اولویت‌بندی ندارد. رویکرد HTTP/2 در اولویت‌بندی پییچده تلقی می‌شود، و یا حتی صرفاً یک شکست، لذا کار بر روی ساخت موردی ساده‌تر در جریان است. لین طرح ساده‌تر هم برنامه‌ریزی شده تا پیش‌انتقال بتواند با استفاده از مکانیزم پسوند HTTP/2 بر روی HTTP/2 اجرا شود.