HTTP/3 چیست و چرا اهمیت دارد؟ | به زبان ساده
در حین تحقیق درباره اینترنت و فناوریهای تشکیل دهنده آن، ممکن است افراد با مفهومی به نام «HTTP» یا «Hypertext Transfer Protocol» به معنی «قرارداد انتقال ابرمتن» مواجه شوند. HTTP شاکله و اساس وب به حساب میآید و پروتکلی جهانی برای انتقال دادههای متنی است. بدون شک تاکنون همه کاربران اینترنت از پروتکل HTTP استفاده کردهاند. زیرا تمام وبسایتها از آن بهره میبرند. در این مقاله به این سوال پاسخ داده میشود که HTTP/3 چیست و چرا اهمیت دارد؟ ابتدا تاریخچه مختصری از پروتکل HTTP ارائه شده است.
تاریخجه مختصری از HTTP
اولین نسخه منتشر شده از HTTP، نسخه «HTTP/0.9» نام دارد. تیم برنرز لی (Tim Berners-Lee) پروتکل HTTP را در سال ۱۳۶۸ شمسی (۱۹۸۹ میلادی) ابداع کرد و در سال ۱۳۷۰ شمسی (۱۹۹۱ میلادی) با HTTP/0.9 نامگذاری شد. HTTP/0.9 محدودیت داشت و تنها قادر به انجام موارد ابتدایی بود. نسخه اولیه پروتکل HTTP نمیتوانست چیزی به جز یک صفحه وب را بازگرداند و از کوکیها و سایر قابلیتهای امروزی پشتیبانی نمیکرد. در سال ۱۳۷۵ خورشیدی (۱۹۹۶ میلادی) نسخه HTTP/1.0 منتشر شد که امکانات جدیدی نظیر درخواستهای POST و امکان ارسال چیزی به جز یک صفحه وب را ارائه میکرد. اگرچه، نسخه HTTP/1.0 همچنان فاصله زیادی داشت با آنچه امروز در HTTP ارائه میشود.
HTTP/1.1 در سال ۱۳۷۶ خورشیدی (۱۹۹۷ میلادی) منتشر شد و دو بار یکی در سال ۱۳۷۸ و همچنین در ۱۳۸۶ مورد بازبینی مجدد قرار گرفت. HTTP/1.1 ویژگیهای جدید بسیاری از جمله کوکیها و اتصالهای پایدار (ادامهدار) را با خود به همراه داشت. نهایتاً در سال ۱۳۹۴ نسخه HTTP/2 انتشار یافت که امکان عملکرد بهبودیافته را ایجاد میکرد. HTTP/2 مواردی نظیر رویدادهای ارسال شده توسط سرور و قابلیت ارسال چند درخواست به صورت همزمان را پشتیبانی میکند. HTTP/2 همچنان فناوری جدیدی به حساب میآید و به میزان اندکی کمتر از نصف وبسایتهای موجود از HTTP/2 استفاده میکنند.
HTTP/3: جدیدترین نسخه HTTP
«HTTP/3» یا «HTTP بر مبنای QUIC» پروتکل HTTP را به میزان زیادی تغییر داده است. پروتکل HTTP به طور سنتی از طریق «TCP» یا «Transmission Control Protocol» به معنی «قرارداد هدایت انتقال» (پروتکل کنترل انتقال) اجرا میشود. TCP در سال ۱۳۵۳ شمسی (۱۹۷۴ میلادی) و در آغاز شکلگیری اینترنت ابداع شده است. زمانی که TCP به تازگی ایجاد شده بود، طراحان آن رشد وسیع وب را پیشبینی نکرده بودند. قدیمی شدن پروتکل TCP برای مدتی باعث ایجاد محدودیت در سرعت و امنیت HTTP شده بود.
اکنون با ارائه نسخه HTTP/3، پروتکل HTTP دیگر دارای محدودیت نیست. به جای TCP، پروتکل HTTP/3 از پروتکل جدیدی استفاده میکند که در سال ۱۳۹۱ خورشیدی (۲۰۱۲ میلادی) توسط گوگل توسعه داده شده است. این پروتکل «QUIC» نام دارد که درست مثل واژه «Quick» به صورت «کوییک» (به معنی سریع) تلفظ میشود. QUIC ویژگیها و قابلیتهای بسیاری را برای HTTP فراهم میکند که در ادامه به هر یک از آنها پرداخته شده است.
ویژگیهای پروتکل HTTP/3 چیست ؟
در این بخش به بیان ویژگیهای جدید پروتکل HTTP/3 پرداخته شده است که به واسطه پروتکل QUIC امکانپذیر شدهاند.
سرعت بیشتر یکپارچهسازی درخواست
پیش ار HTTP/2، مرورگرها تنها میتوانستند یک درخواست HTTP را در لحظه ارسال کنند. این مسئله بارگذاری وبسایت را به میزان قابل توجهی کندتر میکرد. زیرا، مرورگر تنها یک بخش مثل CSS یا جاوا اسکریپت را در لحظه بارگذاری میکرد. در HTTP/2 امکان بارگذاری بیش از دو مورد در یک لحظه ارائه شده بود، اما TCP برای انجام این کار مناسب نبود.
اگر یکی از درخواستها با موفقیت انجام نمیشد، TCP مرورگر را به اجرای مجدد تمام درخواستها وادار میکرد. با حذف TCP در HTTP/3 و جایگزینی آن با QUIC، این مشکل برطرف شده است. در HTTP/3 مرورگر تنها باید درخواست ناموفق را دوباره ارسال کند و نیازی به اجرای مجدد تمام درخواستها نیست. به همین دلیل، HTTP/3 سریعتر و قابل اعتمادتر عمل میکند.
رمزنگاری سریعتر در HTTP/3
HTTP/3 آن دسته از عملیات «دستدهی» را بهینهسازی کرده است که امکان رمزنگاری درخواستهای HTTP مرورگرها را فراهم میسازند. QUIC اتصال اولیه را با دستدهی TLS ترکیب میکند. این کار باعث میشود تا HTTP/3 به طور پیشفرض امن باشد و عملکرد سریعتری از خود بروز دهد.
پیادهسازی HTTP/3
در این بخش نکاتی پیرامون پیادهسازی HTTP/3 شرح داده شده است.
استانداردسازی
در زمان تدوین این نوشته، HTTP/3 و QUIC هنوز استانداردسازی نشدهاند. یک گروه کاری به نام IETF وجود دارد که در حال کار بر روی یک پیشنویس برای استانداردسازی QUIC است. نسخه QUIC ارائه شده برای HTTP/3 تا حدودی ویرایش و تغییر داده شده است تا به جای استفاده از رمزنگاری گوگل از TLS استفاده شود. البته، این نسخه ویرایش شده هیچ کاستی نسبت به نسخه اصلی ندارد.
پشتیبانی مرورگر
در حال حاضر، با توجه به اینکه گوگل پروتکل QUIC را ایجاد و ایده به کارگیری پروتکل HTTP از طریق QUIC را مطرح کرده است، در مرورگر گوگل کروم به طور پیشفرض از HTTP/3 پشتیبانی میشود. فایرفاکس نیز در نسخههای ۸۸ به بعد از HTTP/3 (بدون نیاز به فعالسازی هیچ پرچمی) پشتیبانی میکند. مرورگر سافاری ۱۴ نیز از HTTP/3 تنها در صورتی پشتیبانی میکند که پرچم قابلیت آزمایشی فعال شده باشد.
پشتیبانی از حالت بدون سرور/CDN
تاکنون تنها برخی از سرورها HTTP/3 را پشتیبانی میکنند، اما تعداد آنها در حال افزایش است. Cloudflare یکی از اولین شرکتهایی بود که علاوه بر گوگل HTTP/3 را نیز پشتیبانی میکرد. به همین دلیل، قابلیتهای بدون سرور و CDN با HTTP/3 سازگاری دارند. علاوه بر این، Google Cloud و Fastly نیز با HTTP/3 سازگار هستند. اما در حال حاضر هنوز به نظر نمیرسد Microsoft Azure CDN و AWS CloudFront پشتیبانی از HTTP/3 را ارائه کرده باشند.
برای آزمایش HTTP/3، استفاده از QUIC.Cloud روشی مطلوب (اما آزمایشی) برای راهاندازی یک Caching HTTP/3 CDN در جلوی سرور به حساب میآید. Fastly ،Cloudflare و گوگل کلاود نیز پشتیبانی مطلوبی از HTTP/3 ارائه میدهند و پشتیبانی آنها از HTTP/3 به سطح تولید نزدیکتر است.
جمعبندی
HTTP/3 همچنان یک بهروزرسانی آزمایشی برای HTTP به حساب میآید و به احتمال زیاد تغییراتی در آن اعمال خواهد شد. اگرچه، بیش از نیمی از کاربران شکل فعلی HTTP/3 را به کار میگیرند. در صورتی که آمادگی برای بهروزرسانی پیادهسازی HTTP وجود داشته باشد، استفاده از HTTP/3 میتواند منجر به ارتقا عملکرد وبسایت شود. امید است موارد بیان شده در این مقاله مفید واقع شده باشند.
اگر این نوشته برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
مجموعه دورههای آموزش طراحی سایت فرادرس
دوره آموزش ویدیویی طراحی سایت ویژه کودکان و نوجوانان (HTML و CSS)
مجموعه دورههای آموزش ویدیوی طراحی سایت با HTML و CSS فرادرس
همه چیز در مورد HTTP 3 — از صفر تا صد
رایجترین روشهای ایجاد درخواست HTTP در جاوا اسکریپت — راهنمای مقدماتی
پنج روش افزایش سرعت بارگذاری وبسایتها با HTTP/2 — به زبان ساده
آموزش وب سوکت | راهنمای رایگان و جامع — به زبان ساده
وب هوک (WebHook) چیست ؟ — به زبان ساده
منبع [+]
مجموعه: برنامه نویسی برچسب ها: HTTP 3, HTTP/2, HTTP2, HTTP3, QUIC, اچ تی تی پی ۳, اچی تی تی پی ۳ چیست, برنامه نویسی وب, پروتکل HTTP3, پروتکل QUIC چیست, پروتکل اچ تی تی پی ۳, پروتکل انتقال ابرمتن, پروتکل وب, پروتکل وب سایت, تفاوت HTTP3 و ۲, ویژگی های HTTP3, ویژگی های اچ تی تی پی ۳