HTTP/3 جدیدترین نسخه اصلی پروتکل HTTP است که مرورگرها برای دریافت صفحات وب از آن استفاده میکنند. این پروتکل با استفاده از QUIC بهجای TCP، شیوه برقراری ارتباط میان مرورگر و سرور را تغییر میدهد و میتواند در شبکههای موبایل، اتصالهای ناپایدار و ارتباطات دارای تأخیر زیاد، تجربه سریعتر و روانتری ایجاد کند.
اما HTTP/3 دقیقا چیست، چه تفاوتی با HTTP/2 دارد و آیا فعالسازی آن واقعا باعث افزایش سرعت سایت میشود؟ در این مطلب، نحوه عملکرد این پروتکل، مزایای آن، روش بررسی پشتیبانی مرورگر و مراحل فعالسازی روی سرور را بررسی میکنیم.
HTTP/3 چیست؟
HTTP/3 سومین نسخه اصلی پروتکل انتقال ابرمتن (Hypertext Transfer Protocol) است که در ژوئن ۲۰۲۲ در قالب استاندارد RFC 9114 منتشر شد. این پروتکل برای انتقال اطلاعات وب از QUIC استفاده میکند، درحالیکه نسخههای HTTP/1.1 و HTTP/2 معمولا روی TCP کار میکنند.
در HTTP/3، ساختار ارتباط به این شکل است:
- HTTP/3: پروتکل ارتباطی مورد استفاده برای تبادل درخواستها و پاسخهای وب
- QUIC: پروتکل انتقال اطلاعات که قابلیتهایی مانند مدیریت اتصال، انتقال قابلاعتماد دادهها و رمزنگاری را فراهم میکند
- UDP: پروتکل شبکهای که QUIC برای ارسال بستههای اطلاعاتی از آن استفاده میکند
بنابراین، HTTP/3 مستقیم روی UDP اجرا نمیشود، بلکه از QUIC استفاده میکند که خود بر بستر UDP قرار دارد.
تغییر پروتکل انتقال به این معنا نیست که ساختار اصلی درخواستهای وب عوض شده است. روشهای HTTP مانند GET و POST، کدهای وضعیت، هدرها، کوکیها و قواعد کش همچنان کار میکنند. در نتیجه، صرفاً با استفاده از HTTP/3 معمولا نیازی به بازنویسی قالب، افزونهها یا درخواستهای API سایت نیست.
تفاوت HTTP/3 با HTTP/2 چیست؟
مهمترین تفاوت HTTP/3 با HTTP/2 در نحوه انتقال دادهها است. HTTP/2 از TCP استفاده میکند، اما HTTP/3 با انتقال این مسئولیت به QUIC، برخی محدودیتهای ارتباطی TCP را برطرف میکند.
| ویژگی | HTTP/2 | HTTP/3 |
|---|---|---|
| پروتکل انتقال | TCP | QUIC روی UDP |
| مسدودشدن جریانها در لایه انتقال | امکان تاخیر همزمان جریانها وجود دارد | جریانهای مستقل بهتر مدیریت میشوند |
| رمزنگاری در ارتباط وب | معمولا با TLS | TLS 1.3 برای QUIC الزامی است |
| برقراری اتصال | راهاندازی TCP و سپس مذاکره TLS | ترکیب مراحل انتقال و رمزنگاری |
| تغییر شبکه در حین اتصال | معمولا به اتصال جدید نیاز دارد | امکان حفظ اتصال با شناسه اتصال QUIC |
| فشردهسازی هدرها | HPACK | QPACK |
۱. کاهش تاخیر ناشی از دسترفتن بستهها
در ارتباط مبتنی بر TCP، ازدسترفتن یک بسته میتواند تحویل دادههای بعدی را تا زمان بازیابی آن بسته به تاخیر بیندازد. این مسئله زمانی اهمیت بیشتری پیدا میکند که صفحه وب منابع متعددی مانند تصاویر، فایلهای CSS و JavaScript داشته باشد.
QUIC جریانهای داده را مستقل از یکدیگر مدیریت میکند. به همین دلیل، ازدسترفتن بستههای مربوط به یک جریان لزوما مانع دریافت دادههای جریانهای دیگر نمیشود. البته اگر منابع مختلف به یکدیگر وابسته باشند، این وابستگی همچنان میتواند روی زمان نمایش نهایی صفحه تاثیر بگذارد.
۲. برقراری سریعتر اتصال با TLS 1.3
QUIC رمزنگاری را در فرایند برقراری اتصال ادغام میکند. در یک اتصال جدید، این ساختار معمولا در مقایسه با راهاندازی جداگانه TCP و TLS، یک رفتوبرگشت شبکهای را کاهش میدهد.
در اتصالهای مجدد نیز قابلیت بازیابی اتصال با تاخیر کمتر وجود دارد. QUIC از امکان ارسال داده در مرحله 0-RTT پشتیبانی میکند، اما استفاده از آن به شرایط اتصال و ملاحظات امنیتی درخواستها وابسته است. این قابلیت برای تمام درخواستها به یک شکل قابل استفاده نیست.
۳. حفظ اتصال هنگام تغییر شبکه
فرض کنید کاربری در حال بازکردن یک صفحه با اینترنت وایفای است و در میانه مسیر به اینترنت موبایل منتقل میشود. در اتصالهای QUIC، شناسه اتصال میتواند امکان ادامه ارتباط را بدون شروع کامل یک اتصال جدید فراهم کند، البته به شرط پشتیبانی و سازگاری شرایط شبکه.
۴. فشردهسازی بهینهتر هدرها با QPACK
HTTP/2 از الگوریتم HPACK برای فشردهسازی هدرها استفاده میکند، درحالیکه HTTP/3 از QPACK بهره میبرد. QPACK برای کار با جریانهای مستقل QUIC طراحی شده است تا وابستگیهای مربوط به وضعیت فشردهسازی، دوباره باعث مسدودشدن جریانهای دیگر نشوند.
HTTP/3 چه تاثیری بر سرعت سایت دارد؟
بیشترین مزیت HTTP/3 در اتصالهایی دیده میشود که تاخیر زیاد دارند، بستههای اطلاعاتی در آنها از دست میروند یا کیفیت شبکه مرتب تغییر میکند. این شرایط در اینترنت موبایل، شبکههای شلوغ و ارتباطات بینالمللی بیشتر دیده میشود.
برای مثال، اگر کاربر با اینترنت ناپایدار وارد سایتی شود، HTTP/3 میتواند کمک کند تاخیر در دریافت یک منبع، جریانهای مستقل دیگر را به همان شکل متوقف نکند. همچنین در اتصالهای مجدد، برقراری ارتباط میتواند سریعتر انجام شود.
بااینحال، فعالسازی HTTP/3 بهتنهایی تضمین نمیکند که تمام صفحات سایت سریعتر بارگذاری شوند. نتیجه به کیفیت شبکه کاربر، نحوه پیادهسازی پروتکل، زمان پاسخ سرور، حجم صفحه و تعداد منابع وابسته بستگی دارد.
آیا HTTP/3 از HTTP/2 سریعتر است؟
پاسخ به شرایط بستگی دارد. در شبکههای دارای تاخیر زیاد یا کیفیت ناپایدار، HTTP/3 میتواند عملکرد بهتری داشته باشد. در اتصالهای سیمی سریع و پایدار، تفاوت ممکن است بسیار کم باشد و گاهی اصلا برای کاربر محسوس نباشد.
در یک نمونه اندازهگیری میدانی که DebugBear گزارش کرده است، کاربران یک وبسایت با HTTP/3 مقدار LCP برابر ۱٫۴۴ ثانیه داشتند، درحالیکه این مقدار برای HTTP/2 حدود ۱٫۶۷ ثانیه بود. این نتیجه مربوط به همان وبسایت است و نباید آن را بهعنوان میزان بهبود قطعی برای همه سایتها در نظر گرفت.
برای ارزیابی دقیق، بهتر است شاخصهای Core Web Vitals، زمان پاسخ سرور و دادههای واقعی کاربران را پیش و پس از فعالسازی مقایسه کنید. اگر سایت شما همچنان کند است، بررسی و بهینهسازی فنی سایت باید در کنار بررسی پروتکل ارتباطی انجام شود، زیرا مشکلات کدنویسی، تصاویر حجیم یا سرور ضعیف با تغییر HTTP بهتنهایی برطرف نمیشوند.
کدام مرورگرها و سرورها از HTTP/3 پشتیبانی میکنند؟
مرورگرهای اصلی امروزی مانند Google Chrome، Microsoft Edge، Mozilla Firefox و Safari از HTTP/3 پشتیبانی میکنند. البته استفاده واقعی از این پروتکل به نسخه مرورگر، شرایط شبکه و پشتیبانی سرور یا CDN نیز بستگی دارد.
در سمت سرور، وضعیت به نرمافزار و نسخه نصبشده بستگی دارد:
- LiteSpeed: در نسخههای پشتیبانیشده، HTTP/3 از طریق QUIC قابل استفاده است. اتصال HTTPS و دسترسی به پورت UDP شماره ۴۴۳ اهمیت دارد.
- Caddy: در پیکربندیهای استاندارد، از HTTP/3 پشتیبانی میکند، البته دسترسی شبکه و تنظیمات TLS باید درست باشند.
- Nginx: پشتیبانی از HTTP/3 به نسخه، ماژولها و نحوه کامپایل یا بسته نصبشده وابسته است. در نسخههای جدید، پیکربندی QUIC و شنونده مناسب لازم است.
- CDN: بسیاری از سرویسهای CDN میتوانند HTTP/3 را در لبه شبکه ارائه دهند، حتی اگر ارتباط میان CDN و سرور اصلی سایت از HTTP/2 یا نسخه دیگری استفاده کند.
اگر از هاست اشتراکی استفاده میکنید، ممکن است نیازی به تغییر تنظیمات سرور نداشته باشید. ابتدا باید بررسی کنید شرکت میزبان یا CDN شما این قابلیت را فعال کرده است یا خیر.
چگونه بررسی کنیم سایت از HTTP/3 استفاده میکند؟
یکی از سادهترین روشها، استفاده از ابزار توسعهدهندگان مرورگر است. در Google Chrome و مرورگرهای مبتنی بر آن میتوانید مراحل زیر را انجام دهید.
- صفحه موردنظر را باز کنید.
- با فشردن کلید F12 یا راستکلیک و انتخاب Inspect، ابزار توسعهدهندگان را باز کنید.
- به تب Network بروید.
- روی عنوان یکی از ستونها راستکلیک کنید و ستون Protocol را فعال کنید.
- صفحه را دوباره بارگذاری کنید و مقدار ستون Protocol را بررسی کنید.
اگر مقدار h3 را مشاهده کنید، درخواست مربوطه از HTTP/3 استفاده کرده است. مقدار h2 نشاندهنده HTTP/2 است و مقادیر دیگر میتوانند به نسخههای قدیمیتر اشاره کنند.
اگر در بارگذاری اول مقدار h2 نمایش داده شود، حتما به معنای غیرفعالبودن HTTP/3 نیست. مرورگر ممکن است ابتدا از طریق HTTP/2 به سایت متصل شود و پس از دریافت اطلاعات مربوط به سرویسهای جایگزین، اتصال HTTP/3 را برقرار کند. بنابراین، صفحه را دوباره بارگذاری کنید و چند درخواست را بررسی کنید.
بررسی HTTP/3 از طریق خط فرمان
اگر ابزار curl نصبشده از HTTP/3 پشتیبانی کند، میتوانید از دستور زیر استفاده کنید. بهجای example.com، دامنه موردنظر را قرار دهید.
curl --version
curl --http3-only -I https://example.comدر خروجی دستور اول، وجود HTTP3 در بخش Features را بررسی کنید. دستور دوم تلاش میکند ارتباط را فقط از طریق HTTP/3 برقرار کند و در صورت شکست، به نسخه قدیمیتر برنمیگردد. اگر دستور خطا داد، ممکن است curl نصبشده از این قابلیت پشتیبانی نکند یا اتصال HTTP/3 در مسیر شبکه برقرار نشود.
همچنین میتوانید از ابزارهای آنلاین بررسی HTTP/3 مانند HTTP3 Check برای بررسی دامنه استفاده کنید.
چگونه HTTP/3 را روی سایت فعال کنیم؟
روش فعالسازی به زیرساخت سایت بستگی دارد. اگر CDN شما HTTP/3 را پشتیبانی میکند، معمولا سادهترین راه این است که قابلیت را از پنل همان سرویس فعال کنید. در این حالت، لازم نیست حتماً پروتکل ارتباطی سرور اصلی را تغییر دهید.
فعالسازی HTTP/3 در Nginx
در سروری که مستقیم با Nginx مدیریت میشود، ابتدا باید نسخه و قابلیتهای بسته نصبشده را بررسی کنید. پشتیبانی از HTTP/3 به نسخه Nginx، ماژول QUIC، کتابخانههای مورد استفاده و ساختار پیکربندی وابسته است.
مراحل کلی راهاندازی عبارتاند از:
- اطمینان از استفاده از نسخه و بسته Nginx سازگار با HTTP/3 و QUIC.
- پیکربندی شنونده QUIC در کنار شنونده HTTPS موجود.
- استفاده از گواهی TLS معتبر برای دامنه.
- اعلام پشتیبانی از HTTP/3 از طریق هدر مناسب مانند Alt-Svc، در صورت نیاز به این روش کشف پروتکل.
- بازکردن پورت UDP شماره ۴۴۳ در فایروال و بررسی دسترسی شبکه.
- آزمایش اتصال از مرورگر یا ابزارهای خط فرمان و بررسی گزارشهای سرور.
تنظیمات دقیق به نسخه Nginx و بسته نصبشده بستگی دارد. بنابراین، بهتر است پیش از اعمال تغییرات، مستندات همان نسخه بررسی شود. افزودن چند خط پیکربندی بدون اطمینان از پشتیبانی QUIC ممکن است باعث خطای راهاندازی یا اختلال در سرویس شود.
فعالسازی HTTP/3 در LiteSpeed
در سرورهای LiteSpeed، ابتدا باید نسخه نرمافزار، تنظیمات HTTPS و وضعیت QUIC بررسی شود. سپس دسترسی UDP روی پورت ۴۴۳، قوانین فایروال و تنظیمات مرتبط با دامنه کنترل میشوند.
در برخی نصبها، HTTP/3 از قبل در دسترس است و تنها لازم است مسیر شبکه و تنظیمات دامنه بررسی شوند. در محیطهای میزبانی مدیریتشده نیز ممکن است این تنظیمات در اختیار شرکت میزبان باشند.
استفاده از CDN برای فعالسازی HTTP/3
استفاده از CDN معمولا برای سایتهایی که نمیخواهند مستقیم پیکربندی سرور را تغییر دهند، مسیر سادهتری است. اگر CDN از HTTP/3 پشتیبانی کند، میتواند ارتباط مرورگر و شبکه لبه را با این پروتکل برقرار کند و ارتباط با سرور اصلی را به شکل جداگانه مدیریت کند.
بااینحال، فعالبودن HTTP/3 در CDN به این معنا نیست که تمام ارتباطهای سایت یا تمام فایلهای شخص ثالث نیز از HTTP/3 استفاده میکنند. برای اطمینان، درخواستهای واقعی صفحه را در ابزار Network بررسی کنید.
آیا باید HTTP/2 را پس از فعالسازی HTTP/3 غیرفعال کرد؟
خیر. بهتر است HTTP/2 و در صورت نیاز HTTP/1.1 همچنان فعال بمانند. برخی شبکههای سازمانی، فایروالها یا اتصالهای اینترنتی ممکن است ترافیک UDP را محدود کنند. در چنین شرایطی، مرورگر برای دسترسی به سایت به HTTP/2 یا نسخه سازگار دیگری نیاز خواهد داشت.
مرورگرهای سازگار معمولاً در صورت فراهمبودن شرایط از HTTP/3 استفاده میکنند و اگر اتصال QUIC برقرار نشود، میتوانند به نسخههای دیگر برگردند. حفظ این سازگاری به دسترسی کاربران مختلف کمک میکند.
آیا HTTP/3 امنیت سایت را افزایش میدهد؟
HTTP/3 از QUIC استفاده میکند که TLS 1.3 را برای رمزنگاری ارتباط الزامی میداند. در نتیجه، اتصال HTTP/3 بهصورت رمزنگاریشده برقرار میشود و امکان استفاده از HTTP/3 بدون رمزنگاری وجود ندارد.
البته رمزنگاری ارتباط بهتنهایی به معنای امنبودن کامل سایت نیست. امنیت وردپرس، بهروزرسانی هسته و افزونهها، تنظیمات سرور، مدیریت دسترسیها و محافظت از اطلاعات کاربران همچنان اهمیت دارند.
جمعبندی
HTTP/3 با استفاده از QUIC، شیوه انتقال اطلاعات وب را بهبود میدهد و در شرایطی مانند اینترنت موبایل ناپایدار، تاخیر زیاد و تغییر شبکه میتواند ارتباط سریعتر و پایدارتری فراهم کند. پشتیبانی از رمزنگاری TLS 1.3، مدیریت مستقل جریانها و امکان حفظ اتصال هنگام تغییر شبکه از ویژگیهای مهم آن هستند.
بااینحال، انتخاب HTTP/3 جایگزین بهینهسازی کد، تصاویر، کش، پایگاه داده و زیرساخت سرور نیست. برای رسیدن به نتیجه بهتر، ابتدا وضعیت واقعی سایت را اندازهگیری کنید، سپس متناسب با زیرساخت خود پروتکل را فعال کرده و عملکرد را دوباره بسنجید.
اگر به دنبال بهبود سرعت و پایداری وبسایت خود هستید، میتوانید از سایت افزون بازدید کنید و خدمات مرتبط با توسعه و بهینهسازی سایت را بررسی کنید.


