پروتکل HTTP/3 چیست و چه تفاوتی با HTTP/2 دارد ؟
پروتکل HTTP/3 یک نسخه بهبود یافته از پروتکل HTTP است که برای انتقال دادهها بین کلاینت و سرور در شبکه استفاده میشود. HTTP/3 بر اساس پروتکل QUIC (Quick UDP Internet Connections) که توسط گوگل توسعه یافته، طراحی شده است. در ادامه، به بررسی HTTP/3 و تفاوتهای آن با HTTP/2 میپردازیم.
معرفی پروتکل HTTP/3
پروتکل HTTP/3 نسخه جدیدی از پروتکل انتقال ابرمتن (HTTP) است که به منظور بهبود عملکرد، امنیت و پایداری ارتباطات اینترنتی توسعه یافته است. HTTP/3 بر اساس پروتکل QUIC ساخته شده که توسط Google توسعه یافته و به عنوان یک جایگزین برای پروتکلهای TCP و TLS در نظر گرفته شده است.
در HTTP/3 که جدیدترین نسخه از پروتکل HTTP است که به منظور بهبود کارایی و امنیت انتقال دادهها در شبکه طراحی شده است. برخلاف HTTP/2 که بر پایه پروتکل TCP (Transmission Control Protocol) بنا شده، HTTP/3 بر اساس پروتکل QUIC است. QUIC از پروتکل UDP (User Datagram Protocol) استفاده میکند که باعث کاهش تأخیر در ارتباطات شبکهای میشود.
HTTP/3 یک پروتکل شبکهای است که به طور مستقیم بر روی QUIC اجرا میشود. QUIC (Quick UDP Internet Connections) یک پروتکل انتقال داده مبتنی بر UDP است که از قابلیتهای انتقال سریعتر، کاهش تأخیر و افزایش امنیت بهره میبرد.
HTTP پروتکل ارتباطی در دنیای وب (WWW) است. با استفاده از HTTP، فایلها یا اطلاعات توسط یک مرورگر وب (کلاینت) از یک سرور وب درخواست شده و توسط مرورگر نمایش داده یا خوانده میشوند. پروتکل HTTP/3 کارکردهای جداگانه HTTP، TLS و TCP را در یک پروتکل واحد ترکیب میکند و دیگر پروتکلها را به طور کامل در مدل لایه OSI جدا نمیکند.
در ترکیب با QUIC، پروتکل HTTP/3 به طور کلی سریعتر است و میتواند افت بستهها و تغییرات شبکه را با تغییر آدرسهای کلاینت که در استفاده از موبایل نقش مهمی دارد، بهتر مدیریت کند. پروتکل HTTP/3 از تغییر به QUIC بیشتر از تنظیمات خاص پروتکل HTTP بهره میبرد. همچنین پروتکل HTTP/3 با QUIC این چالش را به همراه دارد که فایروال را دشوارتر میکند.
پروتکل HTTP/3 به هیچ وجه یک توسعه ساده از نسخههای قبلی نیست، بلکه رویکرد جدیدی را ارائه میدهد که گوگل از سال 2012 به طور تجربی روی آن کار میکرد و به یک استاندارد عمومی تبدیل شده است. این پروتکل در چندین نقطه با روشهای قبلی به طور قابل توجهی متفاوت است و ویژگیهای HTTP/2 را با پروتکل UDP (User Datagram Protocol) که 40 سال قدمت دارد، ترکیب میکند.
توسعه پروتکل HTTP3
پروتکل HTTP برای اولین بار در تابستان 1991 توسط تیم برنرز لی مطرح شد. مفهوم او برای WWW شامل سه مؤلفه HTML، Uniform Resource Locator در آن زمان هنوز Universal Document Identifier، UDI و HTTP بود. در آن زمان، HTTP هنوز یک پروتکل متنی با ساختار بسیار ساده بود که برای هر انتقال به یک اتصال TCP جداگانه نیاز داشت، درخواست یک خط بود و پاسخ سرور فقط منبع درخواست شده بود.
در سالهای بعد HTTP با وظایف خود رشد کرد و به ویژگیهای جدیدی از جهات مختلف مجهز شد که کم و بیش سازماندهی نشده بودند. پنج سال بعد در تابستان 1996، کارگروه مهندسی اینترنت (IETF) رایجترین ویژگیها را خلاصه کرد و HTTP/1 را در RFC 1945 شرح داد؛ با این حال لازم به ذکر است که این یک استاندارد نبود.
کار بر روی یک استاندارد رسمی یک سال قبل از این یادداشت، ابتدا با نام HTTP/NG مخفف Next Generation آغاز شد. در سال 1997، طبق RFC 2068، این نسخه به HTTP/1.1 تبدیل شد که اکنون به عنوان یک استاندارد واقعی نیز معرفی شده است. مهمترین تغییرات، عملکرد keepalive بود که برای اولین بار امکان ایجاد اتصالات پایدار را فراهم کرد. اکنون میتوان از یک اتصال TCP باز برای بیش از ارسال ساده داده استفاده کرد.
این پروتکل همچنین برای اولین بار از ارسال داده به سرور با روش PUT پشتیبانی میکرد، عملکردی که در آن زمان فقط توسط چند مرورگر پشتیبانی میشد. پس از آن HTTP برای مدتی ساکت ماند اما در سال 2012 بود که پیشنویسی برای HTTP/2 دنبال شد که اساساً بر اساس SPDY، یک پروتکل جایگزین بود که گوگل از سال 2009 روی آن کار میکرد. استاندارد HTTP/2 در سال 2015 به طور رسمی معرفی شد. مهمترین تغییرات آن هم تبادل دادههای غیرهمزمان با استفاده از چندگانهسازی بود.
تفاوت های HTTP/3 و HTTP/2
یک تغییر کلیدی بین پروتکل HTTP/3 و نسخه قبلی آن، HTTP/2، کنار گذاشتن TCP برای انتقال است که به جای آن به طور انحصاری بر روی QUIC انجام میشود. ویژگی بارز HTTP/2 و نسخههای قبلی آن، ارتباطی بود که با TCP انجام میشد و به صورت کاملاً متوالی از طریق دست دادنهای چند مرحلهای بین سرور و کلاینت انجام میشد. همه بستههای داده به طور افزایشی ارسال میشوند و به ترتیب مشخصی دریافت میشوند، به طوری که از دست رفتن یک بسته منجر به قطع انتقال میشود. در مقابل UDP و QUIC مبتنی بر آن، بدون اتصال کار میکنند.
QUIC و بنابراین پروتکل HTTP/3 به رمزگذاری از طریق پروتکل Transport Layer Security (TLS) نیاز دارند که برای وبسایتها در HTTPS در نسخه 1.3 یا بالاتر استفاده میشود. برخلاف HTTP/2، این کار دیگر در سطح پروتکل TCP انجام نمیشود، بلکه به طور کامل در QUIC ترکیب شده است و پایه و اساس یک ارتباط موفق را تشکیل میدهد.
- پروتکل انتقال: HTTP/2 از TCP استفاده میکند در حالی که HTTP/3 از QUIC (که مبتنی بر UDP است) استفاده میکند.
- تأخیر شروع ارتباط: در HTTP/2، تأخیر ناشی از سهبار دستدهی TCP وجود دارد ولی در HTTP/3 به دلیل استفاده از QUIC، این تأخیر به طور چشمگیری کاهش یافته است.
مدیریت پکتهای از دست رفته: در HTTP/2، از دست رفتن یک پکت میتواند باعث تأخیر در تمام جریانها شود، اما در HTTP/3، این مسئله بهینه شده و فقط جریان مربوطه تحت تأثیر قرار میگیرد. - امنیت: HTTP/3 از امنیت پیشفرض و TLS 1.3 استفاده میکند که امنیت ارتباطات را بیشتر میکند، در حالی که HTTP/2 از TLS 1.2 استفاده میکند.
- پیادهسازی و سازگاری: HTTP/3 نیاز به تغییرات اساسی در زیرساختهای شبکه دارد و باید از پروتکل UDP پشتیبانی کند، در حالی که HTTP/2 به راحتی بر روی زیرساختهای موجود TCP قابل پیادهسازی است.
ویژگی های HTTP/3
- استفاده از QUIC : یک پروتکل انتقال داده مبتنی بر UDP است که بهبودهایی در سرعت و امنیت نسبت به TCP دارد. استفاده از QUIC باعث کاهش تأخیر در شروع ارتباط و افزایش کارایی میشود.
- کاهش تأخیر: با استفاده از QUIC، نیاز به سهبار دستدهی (Three-way Handshake) در TCP حذف شده و شروع ارتباط سریعتر انجام میشود.
- امنیت بالا: پروتکل QUIC دارای امنیت پیشفرض است و از TLS 1.3 برای رمزنگاری استفاده میکند که امنیت ارتباطات را افزایش میدهد.
-
مدیریت بهتر کانکشنها: در HTTP/3، مدیریت اتصالها بهینه شده و در صورت از دست رفتن پکتها، فقط جریانهای مربوطه تحت تأثیر قرار میگیرند و سایر جریانها بدون مشکل ادامه میدهند.
مزایای پروتکل جدید HTTP/3
در پروتکل HTTP/3، جریانهای اطلاعات به طور جداگانه پردازش میشوند. اگر بستهای در طول مسیر گم شود، دیگر مانند انتقال TCP به همه جریانهای داده مربوط نمیشود. در عوض، با HTTP/3 فقط جریان واقعاً تحت تأثیر قرار گرفته باید منتظر بماند تا بسته گمشده تحویل داده شود. HTTP/3 همچنین زمان رفت و برگشت بستهها را کاهش میدهد. این زمان صرف ارسال بسته داده به مقصد و همچنین زمانی میشود که برای تأیید دریافت دادهها لازم است.
اتصال HTTP/3 با استفاده از پورت UDP و آدرس IP برقرار میشود. به محض برقراری اتصال، یک شناسه اتصال اختصاص داده میشود. این شناسه اتصال مستقل از آدرس IP شما است. این مزیت دیگری از HTTP/3 را به ارمغان میآوردکه مثلاً اگر از WLAN خود به داده تلفن همراه بروید، هیچ دانلودی که در حال انجام است نباید قطع شود.
نتیجه گیری
HTTP/3 با استفاده از پروتکل QUIC، بهبودهای چشمگیری در سرعت، کارایی و امنیت انتقال دادهها نسبت به HTTP/2 ارائه میدهد. این نسخه جدید از پروتکل HTTP، مخصوصاً برای کاربردهایی که نیاز به تأخیر کم و کارایی بالا دارند، مناسب است. با این حال، نیاز به تغییرات زیرساختی و سازگاری با پروتکل UDP ممکن است چالشهایی در پیادهسازی آن ایجاد کند.