وقتی داری تو اینترنت گشت وگذار میکنی یا درباره تکنولوژیهای پشت صحنه ش میخونی، احتمالاً به این اسم برخوردی: HTTP. HTTP مخفف Hypertext Transfer Protocol یا همون پروتکل انتقال ابرمتن هست که درواقع ستون فقرات وب به حساب میاد. این پروتکل، مثل یه قانون جهانی برای انتقال اطلاعات متنی توی اینترنت عمل میکنه. جالبه بدونی که همین سایتی که درباره HTTP داری ازش یاد میگیری، خودش از HTTP استفاده میکنه!
یه نگاه کوتاه به تاریخچه HTTP
اولین نسخه HTTP که عرضه شد، HTTP/0.9 بود. این نسخه رو یه آدم خفن به اسم تیم برنرز لی تو سال ۱۹۸۹ ساخت. نسخه رسمی HTTP/0.9 تو سال ۱۹۹۱ منتشر شد. ولی خب این نسخه خیلی محدود بود و فقط میتونست یه کارهای ساده مثل نمایش صفحات وب رو انجام بده. یعنی نمیتونستی چیزهای پیچیدهتری مثل کوکی ها یا درخواستهای پیچیدهتر رو ازش انتظار داشته باشی.
تا اینکه سال ۱۹۹۶ نسخه HTTP/1.0 عرضه شد و امکانات جدیدی مثل درخواستهای POST رو اضافه کرد. حالا دیگه میشد بیشتر از یه صفحه وب هم ارسال کرد! ولی هنوز با اون چیزی که الان استفاده میکنیم خیلی فاصله داشت.
بعدش نسخه HTTP/1.1 تو سال ۱۹۹۷ اومد که کلی قابلیت جدید داشت، مثل استفاده از کوکیها و ارتباطات مداوم. این نسخه حتی تو سالهای ۱۹۹۹ و ۲۰۰۷ هم به روزرسانی شد.
آخرین تحول بزرگ تو این زمینه، سال ۲۰۱۵ اتفاق افتاد که HTTP/2 منتشر شد. این نسخه تمرکز زیادی روی افزایش سرعت و کارایی داشت و امکانهای جدیدی مثل Server Sent Events و ارسال همزمان چند درخواست رو به وجود آورد. با اینکه این نسخه هنوز نسبتاً جدیده، ولی فقط نصف سایتها ازش استفاده میکنن.
HTTP/3: نسخه جدید HTTP
حالا میرسیم به HTTP/3، یا همون HTTP روی QUIC که خیلی با نسخههای قبلی فرق داره. HTTP معمولاً از یه پروتکل قدیمی به اسم TCP استفاده میکرد که تو سال ۱۹۷۴ ساخته شده بود. وقتی TCP به وجود اومد، هیچ کس فکرش رو نمیکرد که اینترنت انقدر رشد کنه. TCP با محدودیت هایی که داشت، سرعت و امنیت HTTP رو کند کرده بود. اما حالا با اومدن HTTP/3 دیگه این محدودیتها برداشته شده.
HTTP/3 به جای TCP از یه پروتکل جدید به اسم QUIC که توسط گوگل تو سال ۲۰۱۲ ساخته شده، استفاده میکنه. این پروتکل کلی ویژگی جدید به HTTP اضافه کرده و تجربه کاربری رو خیلی بهتر کرده.
HTTP/3 چیه؟
HTTP/3 جدیدترین و پیشرفتهترین نسخه از پروتکل انتقال ابرمتن (همون HTTP) هست. اگه بخوایم خیلی ساده توضیح بدیم، HTTP/3 یه سری قوانین و قواعده که مشخص میکنه چطور دستگاهها توی اینترنت با هم ارتباط برقرار کنن و اطلاعات رد و بدل کنن. مثلاً وقتی توی مرورگرت (همون کلاینت) یه سایت رو باز میکنی، مرورگرت یه درخواست به سرور میفرسته و سرور هم جواب میده و محتوای اون صفحه رو برات لود میکنه.
با پیشرفت اینترنت، قوانین انتقال اطلاعات هم نیاز دارن که آپدیت بشن تا با سرعت و امنیت بیشتر انجام بشن. HTTP/3 هم یه نسخه ارتقاء یافته از HTTP/2 هست که باعث میشه تجربه گشت وگذار توی وب سریع تر، روانتر و امنتر بشه.
HTTP/3 چطوری کار میکنه؟
خب، برای اینکه بدونی HTTP/3 چطوری کار میکنه، باید بدونی که این نسخه از یه پروتکل جدید به اسم QUIC استفاده میکنه. این QUIC هم بر پایه UDP ساخته شده. حالا این یعنی چی؟ UDP یه پروتکل بدون اتصال هست، برخلاف TCP که توی HTTP/1 و HTTP/2 استفاده میشد. بدون اتصال بودن UDP باعث میشه که QUIC خیلی سریعتر ارتباط رو برقرار کنه.
وقتی مرورگرت میخواد به یه سرور وصل بشه، HTTP/3 یه handshake با QUIC شروع میکنه. به محض اینکه ارتباط برقرار شد، مرورگرت شروع میکنه به ارسال درخواستهای HTTP (که در واقع بستههای کوچیک اطلاعات هستن) به سرور، اونم از طریق پروتکل QUIC. QUIC این بستهها رو با استفاده از UDP میفرسته.
سرور درخواستها رو پردازش میکنه و جوابها رو هم دوباره توی قالب بستههای داده میفرسته. حتی میتونه چندتا پاسخ همزمان هم بفرسته. این یعنی اگه داری یه وب سایت پر از عکس و اسکریپت لود میکنی، مرورگر میتونه همشون رو باهم و همزمان بارگذاری کنه.
یه چیز خیلی باحال اینه که اگه مرورگرت قبلاً به همون سرور وصل شده باشه، گاهی اوقات میتونه توی همون اولین ارتباط (یا حتی بدون هیچ ارتباطی!) اتصال رو امن کنه. این به خاطر اینه که QUIC میتونه تو بعضی موارد با یه سفر رفت و برگشت (1-RTT) یا حتی بدون هیچ سفری (0-RTT) اتصال رو برقرار کنه. این یعنی کلی از زمان تأخیر کم میشه.
حالا اگه حین انتقال اطلاعات یه بسته گم بشه، QUIC بدون اینکه منتظر تایم اوت بمونه، بسته ی گم شده رو تشخیص میده و سریع دوباره ارسال میکنه. برخلاف TCP که اگه یه مشکلی پیش بیاد، کل ارتباط رو کند میکنه. این یعنی اگه یه مشکلی توی شبکه پیش بیاد، ارتباط توی HTTP/3 کند نمیشه.
یکی از ویژگیهای دیگه HTTP/3 اینه که میتونه چند جریان داده رو به صورت موازی توی همون ارتباط ارسال کنه. یعنی اگه داری یه سایتی با کلی عکس و فایل لود میکنی، مرورگرت همشون رو با هم بارگذاری میکنه.
QUIC یه چیزی داره به اسم connection state یا همون وضعیت ارتباط، که کل زمان ارتباط بین مرورگر (کلاینت) و سرور رو دنبال میکنه. این وضعیت شامل چیزهایی مثل کنترل ازدحام، کلیدهای رمزنگاری و وضعیت امنیتیه. این یعنی مکالمات تکراری نمیشن و هیچ کس نمیتونه شنود کنه یا توی ارتباط دخالت کنه.
در نهایت، وقتی تبادل درخواستها و پاسخها تموم شد، یا مرورگر یا سرور درخواست پایان ارتباط رو میده و این پروسه توسط پروتکل QUIC مدیریت میشه.
HTTP/3 چه فرقی با نسخههای دیگه داره؟
تفاوت اصلی بین HTTP/3 و نسخههای قبلیش، توی تفاوت بین UDP و TCP هست. QUIC که روی UDP ساخته شده، خیلی از محدودیتهای پروتکل قدیمی TCP رو دور زده. مثلاً توی HTTP/3 میتونی چندین جریان داده رو همزمان و موازی بفرستی، در حالی که توی نسخههای قبلی باید بیشتر منتظر میموندی.
یکی از ویژگیهای باحال QUIC اینه که به طور پیش فرض امنیت دادهها رو با رمزنگاری فراهم میکنه. این باعث میشه که ارتباطات سریعتر و امنتر بشن، چون تعداد رفت و برگشتهای لازم برای برقراری ارتباط (همون handshake) کمتر میشه.
در کل، QUIC و UDP تجربه وب گردی رو توی HTTP/3 خیلی سریعتر و امنتر میکنن، در مقایسه با HTTP/1.1 و HTTP/2. این نسخه جدید، علاوه بر بهبودهایی که نسخههای قبلی داشتن، کارایی رو بیشتر کرده:
ویژگی ها
HTTP/3
HTTP/2
HTTP/1.1
پروتکل
UDP روی QUIC
TCP
TCP
همزمانی ارتباطات
چند درخواست تو یه ارتباط UDP
چند درخواست تو یه ارتباط
یه درخواست تو هر ارتباط
امنیت
TLS اجباری، توی QUIC ساخته شده
TLS اجباری
TLS اختیاری
تأخیر
خیلی کمتر
کمتر
زیاد
بازیابی بستههای گم شده
خیلی بهبود پیدا کرده
کمی بهتر شده
زمان بر
مزایای HTTP/3
HTTP/3 امنیت، سرعت و پایداری اینترنت رو بهتر میکنه. درست مثل HTTPS که یه تونل امن بین مرورگر و سایت ایجاد میکنه، QUIC (و به طبع HTTP/3) هم داده هات رو از همون اول، یعنی لایه ی انتقال، رمزنگاری میکنه. این یعنی اطلاعاتی که توی لایه ی بالاتر (لایه ی اپلیکیشن) رد و بدل میشن، به طور پیش فرض امن هستن.
سرعت: همون طور که متوجه شدی HTTP/3 به خاطر استفاده از پروتکل QUIC که بر پایه ی UDP هست، صفحات وب و خدمات آنلاین رو سریعتر لود میکنه. QUIC به مرورگر این امکان رو میده که چندین جریان داده رو به طور همزمان بفرسته، که باعث میشه زمان اتصال و تأخیر در انتقال دادهها کمتر بشه. حتی وقتی کاربر شبکش رو عوض میکنه (مثلاً از Wi-Fi به دیتای موبایل)، HTTP/3 همچنان سریع اتصال رو برقرار میکنه.
پایداری و مدیریت بهتر شبکه: HTTP/3 میتونه تخمین بزنه چقدر ظرفیت شبکه در هر دو جهت (ارسال و دریافت) در دسترسه. این کار باعث میشه جریان دادهها بهتر مدیریت بشه، از ترافیک سنگین جلوگیری بشه، و مشکلاتی مثل بافرینگ و کندی کمتر رخ بده.
نتیجه؟ کاربرها میتونن از وبگردی سریع تر، استریمهای روان تر، بازیهای آنلاین بدون لگ و انتقال امنتر اطلاعات لذت ببرن.
برای ارائه دهندگان محتوا: HTTP/3 یه مزیت بزرگ برای سایتها و خدماتی که محتوای سنگین و با کیفیت بالا (مثل ویدیوهای HD) ارائه میدن، محسوب میشه. محتوا سریعتر و بدون قطعی به دست کاربران میرسه، که میتونه رضایت کاربرها رو بالا ببره و تعامل با سایتها رو بیشتر کنه. همچنین، نگهداری سایتها با HTTP/3 سادهتر میشه.
برای اپراتورهای شبکه: مدیریت منابع شبکه با HTTP/3 راحت تره. چون این پروتکل حتی موقع تغییر شبکه اتصال رو حفظ میکنه، قطعیها کمتر میشه و تجربه کاربری بهتر میشه. از طرفی، بهینهتر شدن استفاده از منابع شبکه میتونه هزینههای زیرساخت رو هم کاهش بده.
معایب استفاده از HTTP/3 نسبت به HTTP/2 چیه؟
با این که HTTP/3 پیشرفتهترین پروتکل HTTP تا به حال هست، اما بی عیب نیست و مشکلاتی مثل پیچیدگی پیاده سازی، سازگاری و عیب یابی داره.
پیاده سازی HTTP/3 سخت تره چون به جای TCP از QUIC روی UDP استفاده میکنه. این یعنی برای سایتها و سرورها کار بیشتری لازمه تا از HTTP/3 پشتیبانی کنن. به همین خاطر، هنوز همه مرورگرها و سرورها از HTTP/3 پشتیبانی نمیکنن. حتی اگه یه سایت از HTTP/3 پشتیبانی کنه، ممکنه بعضی از کاربرها نتونن ازش استفاده کنن چون مرورگرشون هنوز آپدیت نشده.
یه مشکل دیگه اینه که HTTP/3 اطلاعات بیشتری رو رمزنگاری میکنه، و این میتونه عیب یابی رو برای مهندسا سختتر کنه. چون اطلاعات کمتری از ترافیک در دسترسه، پیدا کردن و رفع مشکلات ممکنه زمان برتر باشه. علاوه بر این، HTTP/3 منابع بیشتری از سرورها میگیره، پس ممکنه مدیریت حجم بالای کاربرها برای سرورها سختتر بشه.
همچنین بعضی از تجهیزات شبکه مثل روترها هنوز بهینه سازی نشدن تا بتونن با روش ارسال داده در HTTP/3 خوب کار کنن.
آیا HTTP/3 در حال حاضر قابل استفاده هست؟
HTTP/3 هنوز به اندازه HTTP/2 فراگیر نشده. تا نوامبر ۲۰۲۳، حدود ۲۷.۱٪ از وب سایتها از HTTP/3 استفاده میکردن.
خیلی از سرویسهای بزرگ هم دارن این پروتکل جدید رو فعال میکنن تا سرعت و پایداری پلتفرم هاشون رو بهتر کنن. سرویس هایی مثل گوگل (شامل یوتیوب)، مایکروسافت، موزیلا، آمازون وب سرویسز، کلودفلر، فیس بوک و لینکدین جزو پیشتازان این تغییر هستن.
اما به عنوان کاربر، لازم نیست نگران این قضیه باشی. چون اگه مرورگرت از HTTP/3 پشتیبانی کنه، خودش به طور خودکار وقتی به یه سرور سازگار وصل میشه، از این پروتکل استفاده میکنه.
پشتیبانی مرورگرها از HTTP/3
همه مرورگرهای بزرگ یا به طور پیش فرض از HTTP/3 پشتیبانی میکنن یا این امکان رو دارن که توی تنظیماتشون فعال بشه. این مرورگرها شامل گوگل کروم (از نسخه ۸۷ به بعد)، موزیلا فایرفاکس (از نسخه ۸۸ به بعد)، مایکروسافت اج (کرومیوم ۸۷ به بعد)، سافاری (قابل فعال سازی از نسخه ۱۴ به بعد) و اوپرا (کرومیوم ۸۷ به بعد) هستن.
به احتمال زیاد، در آینده این پشتیبانی حتی گستردهتر هم میشه، چون مرورگرهای بزرگ الان دارن به طور جدی از این استاندارد جدید استفاده میکنن و مسیر آینده هم کاملاً مشخصه.
آیا باید HTTP/3 رو فعال کنی؟
اگه HTTP/3 برات در دسترسه، حتماً فعالش کن! چون باعث میشه سرعت وب گردیت بیشتر بشه، امنیتت بالا بره و ارتباطاتت پایدارتر بشن، مخصوصاً اگه مدام بین Wi-Fi و دیتای موبایل جابجا میشی یا از شبکههای ناپایدار استفاده میکنی. با فعال کردن HTTP/3 میتونی از لود سریعتر صفحات و تجربه روانتر اینترنت لذت ببری.
اگه صاحب یه سایت هستی، فعال کردن این استاندارد جدید میتونه عملکرد سایتت رو بهتر کنه و رضایت کاربران رو بالا ببره. البته، قبل از فعال سازی مطمئن شو که سرورها و شبکه توزیع محتوات (CDN) از HTTP/3 پشتیبانی میکنن.
سوالات متداول
1. HTTP/3 چه تفاوت هایی با HTTP/2 داره؟
HTTP/3 به جای TCP از پروتکل QUIC استفاده میکنه که بر پایه UDP هست. این باعث میشه ارتباطات سریعتر برقرار بشن، چند جریان داده به طور همزمان ارسال بشه و همچنین امنیت بهتری ارائه بشه. برخلاف HTTP/2 که هنوز از TCP استفاده میکنه، HTTP/3 به طور پیش فرض امنیت دادهها رو با رمزنگاری در لایه ی انتقال فراهم میکنه.
2. همه مرورگرها از HTTP/3 پشتیبانی میکنن؟
تقریباً همه مرورگرهای بزرگ مثل گوگل کروم، موزیلا فایرفاکس، مایکروسافت اج، سافاری و اوپرا از HTTP/3 پشتیبانی میکنن. بعضی مرورگرها به طور پیش فرض این پروتکل رو فعال دارن و بعضی دیگه این امکان رو در تنظیمات به کاربر میدن که فعالش کنه.
3. فعال کردن HTTP/3 برای صاحب سایتها چه مزیتی داره؟
با فعال کردن HTTP/3، سایتت سریعتر بارگذاری میشه و تجربه کاربری روانتری ارائه میده. این موضوع برای سایت هایی که محتوای سنگین یا رسانههای باکیفیت بالا دارن، خیلی مهمه. علاوه بر این، HTTP/3 میتونه رضایت کاربرها رو بیشتر کنه و کار نگهداری سایت رو سادهتر کنه.
4. HTTP/3 روی چه سرورهایی قابل پیاده سازیه؟
HTTP/3 برای پیاده سازی نیاز به سرورهایی داره که از QUIC و UDP پشتیبانی کنن. سرورهایی مثل کلودفلر و آمازون وب سرویسز از این پروتکل پشتیبانی میکنن و راه اندازی اون رو برای سایتها و برنامههای مختلف آسون میکنن.
5. آیا HTTP/3 نیاز به تجهیزات شبکه خاصی داره؟
بله، بعضی از تجهیزات شبکه مثل روترها هنوز برای پشتیبانی از HTTP/3 و روش ارسال دادههای اون بهینه سازی نشدن. با این حال، شبکهها به مرور زمان سازگارتر میشن و مشکلات کمتری در این زمینه به وجود میاد.
جمع بندی
HTTP/3 با استفاده از پروتکل جدید QUIC و تکیه بر UDP، باعث شده تا تجربه وب گردی هم سریعتر و هم امنتر بشه. این پروتکل به طور پیش فرض امنیت دادهها رو افزایش میده و ارتباطات رو حتی در شرایط ناپایدار شبکه بهبود میبخشه. همچنین برای سایتها و ارائه دهندگان محتوا، HTTP/3 یه مزیت بزرگ در بهبود سرعت، عملکرد و رضایت کاربرها محسوب میشه. با اینکه HTTP/3 هنوز به طور کامل همه جا پیاده سازی نشده، ولی آینده وب رو به سمت سریعتر و پایدارتر شدن پیش میبره.