آیا HTTP / 2 سایت شما را سریعتر می کند؟
مقاله

آیا HTTP / 2 سایت شما را سریعتر می کند؟

نسخه HTTP 1.1 به مدت 18 سال بر روی وب استفاده می شد. این پروتکل، اتصالات پایدار را برای بهبود عملکرد ایجاد کرد. همچنین درخواست های استاندارد مانند GET ، HEAD ، PUT و POST را پایه گذاری نمود. با بزرگتر شدن دنیای وب ، محدودیت های این پروتکل آشکارتر شد و نیاز به ارتقا پروتکلی توانمند و قدرتمندتر احساس شد.

به همین منظور HTTP / 2 در اوایل سال 2015 منتشر شد. این پروتکل بدون ایجاد تغییری در مفاهیم برنامه های وب، باعث بهینه سازی اتصالات وب سایت می شود. از ویژگی های HTTP / 2 می توان بهبود عملکرد ، مدیریت خطا ، کاهش تاخیر و کاهش سربار را نام برد.

امروزه نزدیک به 84٪ مرورگرهای مدرن و 27٪ از کل وب سایتها از HTTP / 2 پشتیبانی می کنند و این تعداد به تدریج در حال افزایش است.

چه تفاوت هایی بین HTTP/2 و HTTP/1.1 وجود دارد ؟

HTTP / 2 در مقابل HTTP / 1.1 ، در نحوه شکل گیری و انتقال داده ها بین مشتری و سرور متفاوت عمل می کند. امکان تحویل سریعتر محتوا در نسخه جدید فراهم شده است. 

تصویر(1)

Binary protocols

پروتکل های باینری پهنای باند کمتری مصرف می کنند و کارایی بیشتری در تجزیه و تحلیل درخواست ها دارند. همچنین پروتکل های باینری نسبت به پروتکل های متنی مورد استفاده HTTP / 1.1، از خطاهای کمتری برخوردار هستند. در واقع فرم پروتکل دودویی توانسته است مشکل head-of-line که منجر به بلوکه شدن درخواست‌ها توسط HTTP 1/1 می شود را حل کند؛ به ‌طوری که دیگر نیازی به ارتباطات چندگانه برای فعال‌سازی فرایند موازی روی درخواست‌ها نباشد.

مرورگرهایی که از HTTP / 2 استفاده می کنند ، قبل از انتقال فربم از طریق شبکه ، دستورات متنی را به باینری تبدیل می کنند.

 

تصویر(2)

Multiplexing 

HTTP / 2 مولتی‌پلکس است ، یعنی می تواند چندین درخواست را به صورت موازی بر روی یک اتصال TCP به کار گیرد. در نتیجه ، صفحات وب که شامل چندین عنصر هستند از طریق یک اتصال TCP تحویل داده می شوند. Multiplexing پیشرفته ترین ویژگی پروتکل HTTP / 2 است زیرا به شما امکان می دهد تا فایلهای وب را بصورت غیر همزمان از یک سرور بارگیری کنید. ضمن اینکه این قابلیت مشکل بلوکه شدن head-of-line در HTTP / 1.1 را حل کرده است زیرا در نسخه قبلی نخستین بسته باعث می شد تا دیگر بسته ها در حالت انتظار نگهداری شوند.

 

تصویر(3)

Multiplexing باعث می شود زمان تاخیر چرخشی (RTT) کاهش یابد و وب سایت شما بدون بهینه سازی، سریعتر بارگذاری شود.

Header compression

header شامل مواردی همچون دیتا، نوع مبدأ، حجم، مدت زمان کَش و موارد دیگر می باشد. HTTP / 2 از فشرده سازی هدر برای کاهش سربار ناشی از مکانیسم TCP استفاده می کند.

HPACK یک رویکرد ساده و مطمئن برای فشرده سازی هدر است که توسط HTTP / 2 معرفی شده است.

تصویر(4)

Server push

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

همچنین باعث می شود که مشتری منابع ارسال شده از سوی سرور را در cache ذخیره نموده تا از این منابع ذخیره شده در صفحات مختلف استفاده مجدد کند.

تصویر(5)

Increased security

تنها مرورگرهایی که از http/2 پشتیبانی می کنند، بوسیله اتصالات رمزنگاری شده امنیت کاربر و برنامه را تضمین می کنند.

آیا سایت شما HTTP/2 را پشتیبانی می کند ؟

چندین وب سرور مهم و شبکه های تحویل محتوا (CDN) از HTTP / 2 پشتیبانی می کنند. سریعترین روش برای بررسی اینکه وب سایت شما از HTTP / 2 پشتیبانی می کند به این صورت است که در Firefox و Chrome ، کلیدهای Ctrl-Shift-I یا کلید F12 را فشار داده و روی زبانه Network کلیک کنید. برای نمایش لیستی از پاسخ ها ، صفحه را refresh کنید. روی ستون ها در جدول کلیک راست کرده و عنوان "پروتکل" را فعال کنید. اگر HTTP / 2 پشتیبانی شود در این ستون نام HTTP / 2.0 را در Firefox یا Chrome مشاهده خواهید نمود.

 

تصویر(6)

آزمایش بررسی عملکرد HTTP/2

برای اندازه گیری اختلاف سرعت بین HTTP / 2 و HTTP / 1.1 ، یک آزمایش بررسی عملکرد بر روی یک سایت وردپرس با HTTP / 2 و بدون آن انجام گردید. این سایت وردپرسی با استفاده از PHP 7.0.30 ، MySQL 5.7.22 و Nginx 1.10.3 راه اندازی شده است.

برای انجام این آزمایش ، از یک ابزار بررسی سرعت تکرار صفحه (Page Speed Monitoring) استفاده شده است تا هر 30 دقیقه وضعیت صفحه وب را چک کند.

نتیجه بررسی با استفاده از HTTP/1.1 :

 

تصویر(7)

نتیجه بررسی با استفاده از HTTP/2 :

 

تصویر(8)

فقط با یک تغییر ساده در پیکربندی سرور ، وب سایت عملکرد قابل توجهی پیدا کرد. به دلیل تعداد کمتر اتصالات TCP ، زمان بارگذاری صفحه بیش از 13٪ کاهش یافته و در نتیجه FTTB کمتر شده است.

نتیجه گیری

HTTP / 2 در حال حاضر ثابت کرده است که جانشین مناسبی برای HTTP / 1.1 است. تعداد زیادی از مرورگرها به استثنای Opera Mini و UC (برای اندروید) ، پشتیبانی از این پروتکل را پیاده سازی کرده اند.

اشتراک گذاری:

نظرات

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

captcha