HyperText Transfer Protocol version 2 یا HTTP/2 جدیدترین استاندارد HTTP است. به روز رسانی در این پروتکل سرعت، عملکرد و امنیت ترافیک وب را بالا برده است.
در این مقاله شما را با HTTP/2 آشنا کرده و به شما میگوییم که چگونه وبسایت یا سرور خود را پیکربندی کرده و از قابلیتهای جدید استفاده کنید.
HTTP/2 چیست؟
برای یک کاربر معمولی تفاوت چندانی بین HTTP/1.1 و HTTP/2 وجود ندارد.
همهی مرورگرها به یک مجوز امنیت لایه انتقال (TLS) نیاز دارند تا بتوانند توسط HTTP/2 یک وبسایت را اجرا کنند. در نتیجه علاوه بر بارگذاری سریعتر صفحه امنیت وبسایت نیز بالاتر میرود.
برای طراحان و صاحبان وب، HTTP/2 میتواند سرعت بارگذاری را در همهی دستگاهها بالاتر ببرد.
همهی مرورگرهای مدرن استاندارد پروتکل جدید را پشتیبانی میکنند. با این حال اگر سرور و یا مرورگر HTTP/2 را پشتیبانی نکند، HTTP/1.1 به صورت خودکار فعال میشود.
HTTP/2 چه اثری روی طراحی وبسایت دارد؟
تغییراتی که در HTTP/2 وجود دارد در بهینه سازی سرعت و بازده وبسایت ما اثر میگذارد.
قابلیتهای جدید معرفی شده در HTTP/2 باعث میشود که دیگر تکنیکهای بهینه سازی و راهحلهای HTTP/1 مورد استفاده قرار نگیرد که شامل اینلاین اسکریپتها به HTML یا ترکیب فایلها برای کاهش درخواست سرور میشود. شاردینگ دامنه (Domain sharding) نیز دیگر قابل استفاده نخواهد بود.
در بعضی موارد، اگر از HTTP/2 استفاده کنید راهحلها اثر معکوس بر سرعت صفحه وب خواهند داشت.
بیشتر ترافیک اینترنتی مرتبط با موبایل است در نتیجه سرعت اینترنت موبایل را در نظر گرفته و اندازهی فایلهای مدیا را کوچک نگاه دارید. شما همچنین باید JavaScript، HTML و CSS خود را فشرده کنید.
با این مفاهیم HTTP آشنا شوید
اگر با مفاهیم این مقاله آشنا نیستید ادامهی مقاله را دنبال کنید:
اینلاین اسکریپت (Inline script)اضافه کردن جاوااسکریپت به طور مستقیم به اسناد HTML با تگ <script> است. در HTML/1.1 با استفاده از این روش از شر فایلهای جاوااسکریپت خلاص شده و درخواستهای سرور را کاهش داده و اسکریپتها را سریعتر بارگذاری میکند.
کاهش تعداد فایلها به لطف مولتیپلکسینگ (Multiplexing) ، اولویتبندی استریم و سرور پوش(Server Push) دیگر در HTTP/2 برای سرعت بارگذاری صفحه دیگر یک مشکل بزرگ نیست.
مولتیپلکسینگ یک قابلیت جدید در HTML/2 است که امکان چندین دیتا استریم (Data Stream) یا جریان داده را در یک اتصال پروتکل کنترل انتقال ( TCP) فراهم میکند.
جریان داده یک اصطلاح HTML/2 است که برای جریانهای دوجهتی داده استفاده میشود. با استفاده از شناسه خاص ما میتوانیم هر جریان را اولویت بندی کنیم که باعث میشود بتوانیم ارسال داده را بهینه سازی کنیم.
اولویت بندی جریان (Stream Prioritization) یک قابلیت جدید دیگر در HTML/2 است که این امکان را به ما میدهد تا به یک سرور بگوییم که منابع و پهنای باند را به جریانهای داده بهینهسازی شده تخصیص دهد. علاوه بر آن از ارسال محتوایی که در اولویت قرار دارند را به صورت بهینه سازی شده به کلاینتها تحویل میدهد.
Domain Sharding عمل تقسیم منابع وبسایت بین چندین سایت یا دامنه برای رسیدن به محدودیت دانلود همزمان در HTML/1.1 است.
در HTML/2، Multiplexing و Server Push دانلودهای همزمان سریعتر و بهینهشدهتر از Domain Sharding است. البته در حال حاضر هیچ پشتیبانی برای استفاده از این قابلیتها طی چند دامنه وجود ندارد.
Server Push به یک سرور اجازه میدهد تا چندین پاسخ به یک درخواست کلاینت فرستاده شود. به صورت خلاصه سرور فرض میکند که به کدام فایلهای یک مرورگر نیاز دارد تا بدون این که مرورگر آنها را درخواست دهد باز شوند.
حال کمی به تغییراتی که صاحب یک وبسایت باید ایجاد کند تا وبسایت را برای HTTP/2 بهینهسازی کند میپردازیم.
5 تغییر در وبسایت برای بهینهسازی HTTP/2
تغییرات اصلی که باید به عنوان یک صاحب وبسایت ایجاد کنید مرتبط با منابع وبسایت است. به خصوص درمورد این که سرورهای وبسایت باید با مرورگر ارتباط برقرار کرده و فایلها چگونه ارسال میشوند.
1- CSS و جاوااسکریپت را با هم ترکیب نکنید
شما دیگر نباید منابع وبسایت خود را با همدیگر ترکیب کنید. در HTTP/1.1 این کار تعداد درخواستهای HTTP را کاهش داده و فایلها باید برای نمایش روی سایت دانلود شوند.
هر درخواست HTTP تأخیر را تشدید میکند درنتیجه HTTP/1.1 که یک فایل را دانلود میکند بهتر عمل میکند تا این که چندین فایل را دانلود کند. فایلهای کمتری نیز به محدودیت برای دانلود همزمان در HTTP/1.1 میرسند.
همانطور که HTTP/2 امکان چندین دانلود را بدون چندین درخواست سرور فراهم میکند، تعداد فایلها هنگام بهینهسازی برای سرعت کمتر اهمیت دارد. در ترکیب با حافظه نهان، کیفیت فایلهای خاص در HTTP/2 بهتر هستند.
درنتیجه فایلهای خاص بیشتری به شما این امکان را میدهند تا بیشتر وبسایت خود را صرف شبکه دریافت محتوا(CDN) و حافظه نهان مرورگر کنید. علاوه بر آن مرورگر دیگر مجبور نخواهد بود وقتی که شما تغییرات جزئی روی سایت خود انجام میدهید یک فایل بزرگ را دانلود کند.
2- اسکریپتها را در HTML اینلاین نکنید
جاسازی CSS و فایلهای جاوا اسکریپت در اسناد HTML سرعت بارگذاری صفحه را در HTTP/1.1 بالا میبرد. با ترکیب فایلها تعداد فایلها و درخواستهای سرور را کاهش میدهد.
اینلاین کردن اسکریپتها در HTML وقتی که از HTTP/2 استفاده میکنید با کاهش قابلیت مرورگر برای ایجاد حافظه نهان به صورت تکی باعث کاهش بهینه سازی سرعت صفحه میشود.
این کارهرگونه ارتقا در اولویتبندی استریم و همچنین اسکریپت جاسازیشده را شکسته و محتوا همان اولویت مشابه محتوای HTML را دریافت میکند.
به جای اینلاین محتوا برای کاهش درخواستهای HTTP از مولتیپلکسینگ و سرور پوش استفاده کنید. این کار به مرورگر اجازه میدهد تا منابع بیشتری را با درخواست کمتر دانلود کرده و سرعت بارگذاری صفحه را ارتقا دهد.
به طور خلاصه در صورت امکان منابع خود را جدا و کوچک نگاه دارید.
3- از CSS Image Sprites استفاده نکنید
Image Sprites تصاویری است که از تصاویر کوچک زیادی ساخته شده ( مثل شکل بالا). CSS مشخص میکند که کدام بخشهای عکس نمایش داده شود.
مانند بیشتر روشهای HTTP/1.1، ما از image sprites برای کاهش درخواست سرور استفاده میکنیم. در HTTP/2 شما میتوانید بدون هیچ اشکالی در سرعت بارگذاری صفحه از تصاویر جدا استفاده کنید.
فایلهای کوچکتر سریعتر دانلود شده و به لطف مولتیپلکسینگ یا سرور پوش بهتر هستند.
4- از Domain Sharding استفاده نکنید
Domain sharding برای دور زدن محدودیتهای دانلودهای همزمان HTTP/1 استفاده میشوند. این محدودیت معمولاً بین چهار تا هشت تا در هر دامنه است و توسط مرورگرها تعیین میشود تا حملات DDOS را کاهش دهد.
شاردینگ وبسایت در بین مثلاً چهار دامنه میتواند در یک چهارم زمان استفاده شده در HTTP/1.1 از منابع استفاده کند.
شاردینگ دامنه دیگر به لطف مولتیپلکسینگ HTTP/2 لازم نیست.
درضمن مرورگرها نمیتوانند از مولتیپلکسینگ و دانلودهای موازی در بین چندین دامنه در HTTP/2 استفاده کنند. شاردینگ همچنین اولویتبندی استریم را در HTTP/2 بشکنند و مزایای آن را از بین ببرند.
5- از Server Push استفاده کنید
میتوان گفت که بزرگترین پیشرفت در HTTP/2 سرور پوش است.
در HTTP/1.1 وقتی قصد دیدن یک صفحه را دارید سرور اول سند HTML فرستاده میشود. مرورگر شما آن را تجزیه کرده و به صورت جداگانه درخواست CSS، جاوا اسکریپت و فایلهای مدیای موجود در سند را میدهد.
در HTTP/2، سرورپوش سرور را مجبور میکند تا منابع درخواست شده را بدون درخواست جداسازی به یک مرورگر بفرستد. این منابع شامل CSS، فایلهای جاوا اسکریپت و مدیا شده و درخواستهای HTTP را کاهش میدهد و همچنین سرعت بارگذاری صفحه را بالا میبرد.
چگونه سرور را برای HTTP/2 پیکربندی کنیم؟
بیشتر پیادهسازیهای سرور HTTP/2 را پشتیبانی میکنند. با این حال اگر از یک میزبان مشترک استفاده میکنید باید با ادمین سرور چک کنید و ببینید که آیا HTTP/2 فعال دارید یا خیر. اگر کنجاو هستید گیتهاب یک لیست از پیکربندیهای سرور که HTTP/2 را پشتیبانی میکنند دارد.
سرورهای Nginx به صورت پیشفرض HTTP/2 را پشتیبانی میکنند اما ممکن است مجبور شوید سرورهای Apache را پیکربندی کنید تا HTTP/2 را پشتیبانی کنند.
اگر وبسایت شما HTTPS است باید درhttp2.pro ببینید که امکان دریافت آن از طریق HTTP/2 وجود دارد یا خیر. اگر از Cloudflare به عنوان CDN خود استفاده کردهاید هر محتوایی از سرورهای آنها روی HTTP/2 اجرا شده و لازم نیست شما کار خاصی انجام دهید.
میزبانهای مختص WordPress ممکن است تغییرات پیکربندی که شما انجام میدهید را به خصوص در ردیفهای پایینتر خود محدود کنند. درنتیجه ما Bluehost را برای سایتهای وردپرس پیشنهاد میدهیم. Bluehost به شما SSL و CDN رایگاه ارائه داده و وبسایت شما را روی HTTP/2 اجرا میکند.
HTTP/2 تازه اول راه است
HTTP/2 نسبت به استاندارد قبلی پیشرفت بزرگی داشته است و استفاده از آن مزایای زیادی دارد.
وبسایتهایی که از آن استفاده میکنند سریعتر بارگذاری شده و امنتر هستند و در نتیجه در رنکینگ جستوجو رتبه بهتری خواهند داشت.
HTTP/3 نیز در راه است ارتقای سایت به HTTP/2 باعث میشود تا راحتتر بتوانید به HTTP/3 برسید.
بیشتر بخوانید:
سه علامت که نشان میدهد دستگاه مک شما دچار ویروس شده است
نسل سوم پردازنده رایزن، قدرتمندترین پردازنده دسکتاپ رونمایی شد
ما را در شبکههای اجتماعی مختلف تلگرام، روبیکا، توییتر، اینستاگرام، سروش همراهی کنید.
منبع خبر: makeuseof
ثبت نظر