پروتکل HTTP3 چیست؟

پروتکل HTTP یا به عبارت دیگر HyperText Transfer Protocol، یکی از پروتکل‌های شبکه برای ارتباط بین کامپیوترها در شبکه‌ی جهانی وب است و هدف اصلی از طراحی آن، ارتباط کامپیوتر کاربر با سرور سایت‌ها است.

این پروتکل در اواخر دهه‌ی ۱۹۸۰ و اوایل ۱۹۹۰ توسعه پیدا کرده و در سال ۱۹۹۶ رسماً معرفی و در اختیار عموم قرار داده شده است. اولین نسخه‌ی پروتکل HTTP حدود ۲۰ سال استفاده‌ی همگانی داشت.  سرانجام در سال ۲۰۱۵ نسخه‌ی دوم یا HTTP2 معرفی شد. در نسخه‌ی دوم از فشرده‌سازی داده و خطوط داده یا Pipeline به منظور افزایش سرعت ارتباطات بهره‌گیری شده است.

HTTP3

و حالا پس از ۴ سال، نسخه‌ی سوم پروتکل HTTP معرفی شده است. در این نسخه هم ویژگی‌های مرتبط با سرعت وجود دارد. البته در این نسخه ویژگی‌های امنیتی نیز لحاظ شده که امنیت کاربران حین وب‌گردی را بیشتر می‌کند.

تکنولوژی جدید موجب ارسال سریع‌تر داده می‌شود، آسیب‌پذیری کمتری از جهت خطاها دارد و تأخیر کاهش پیدا می‌کند تا شروع بارگذاری اطلاعات از سرورها، زودتر اتفاق بیافتد. HTTP3 به صورت پیش‌فرض رمزگذاری دارد و لذا نیازی به استفاده کردن از روش‌های رمزگذاری مجزا نیست. در این نسخه از الگوریتم TLS نسخه‌ی 1.3 برای رمزگذاری استفاده می‌شود که در واقع در HTTPS فعلی هم کاربرد دارد.

HTTP3 بر اساس QUIC شکل گرفته و قبلاً با عنوان HTTP-over-QUIC شناخته می‌شد. QUIC یا Quick UDP Internet Connections پروتکلی است که گوگل آن را توسعه داده است.

پروتکل HTTP3 چطور کار می‌کند؟

یک تفاوت اساسی بین HTTP2 و HTTP3 در نحوه‌ی ارسال بسته‌های داده بر بستر اینترنت است. در پروتکل جدید به جای استفاده از TCP از UDP استفاده می‌شود. هر دو پروتکل TCP و UDP برای ارسال بیت‌های داده در شبکه به کار می‌روند اما در روش TCP که قدیمی‌تر است، بسته‌های داده به صورت مرتب و توأم با چک کردن خطاها ارسال می‌شود و روشی قابل اعتماد است. اما مشکل این است که اگر حتی یک بسته‌ی داده در فرآیند ارسال، به دلیلی از بین برود و به مقصد نرسد، تمام فرآیند با مشکل مواجه می‌شود. درست مثل این است که در اتوبانی یخ‌زده، یک خودرو تصادف کند!

HTTP3

همان‌طور که گفتیم HTTP3 بر اساس QUIC یا Quick UDP Internet Connections طراحی شده و از پروتکل UDP برای ارسال داده استفاده می‌کند.

در این روش، ترتیب و چک کردن خطا وجود ندارد و لذا مثل TCP قابل اعتماد نیست اما در مقابل این مزیت را دارد که سریع‌تر است. اگر بسته‌ی از داده از دست برود، اپلیکیشن دریافت‌کننده‌ی داده‌ها می‌تواند آن را مجدداً درخواست کند و البته این درخواست می‌تواند با استفاده از پروتکل TCP انجام بشود که قابل اطمینان است.

بنابراین در HTTP3 داده‌ای که از بین رفته، فقط داده‌های مربوط به همان بسته را تحت تأثیر قرار می‌دهد و ارسال سایر بسته‌ها متوقف نمی‌شود. در واقع می‌توانید این طور تصور کنید که در اتوبانی یخ‌زده، اگر خودرویی تصادف کند، به صورت خودکار از اتوبان حذف می‌شود و در واقع اصولاً صفی از بسته‌های پشت‌سرهم در کار نیست.

پروتکل HTTP3 می‌تواند با ایجاد یک کانکشن، چندین استریم داده برای ارسال انواع فایل و داده مثل HTML و CSS و JavaScript‌ و فایل‌های عکس و ویدیو و … را ارسال کند.

از طرف دیگر فرآیند Handshake که ارتباط اولیه بین سایت‌ها برای شناسایی یکدیگر و تأیید هویت و برقراری کانکشن رمزگذاری شده و امن است هم در این نسخه‌ی HTTP سریع‌تر اتفاق می‌افتد که در افزایش سرعت موثر است. پس از ایجاد کانکشن امن، تبادل داده با پروتکل UDP آغاز می‌شود و ترتیبی در ارسال بسته‌ها وجود ندارد اما در هر بسته از داده، شناسه‌ای وجود دارد که در نهایت برای کنار هم قرار دادن بسته‌ها با ترتیب صحیح به کار می‌رود.