HTTP/2 سرعت بارگذاری محتوای رسانه ای روی گوشی موبایل را ۳ تا ۱۵ برابر افزایش میدهد
بسیاری از نرمافزارهای بومی گوشیهای هوشمند تینکلاینت (thin clien) هستند؛ یعنی وابسته به رابط برنامهنویسی نرمافزار (API) بوده و منابع رسانهای را از طریق پروتکل HTTP واکشی میکنند. ما قصد داریم نسخهی نمایشی یک مرورگر مبتنی بر پروتکل HTTP/2 شرکت CloudFlare را به عنوان یک نرمافزار بومی سیستم عامل iOS 9 باز تولید کرده و عملکرد آن را در شبکههای بیسیم (WiFi)، التیای (LTE) و ۳ جی (3G) آزمایش کنیم. در این آزمایش، ۲۰۰ تکه از یک تصویر از طریق سرور مبتنی بر پروتکل HTTP/1.1 و HTTP/2 واکشی (fetch) خواهد شد.
میتوانید در ادامه، نتیجه و جزئیات آزمونی را که سرعت بیشتر پروتکل HTTP/2 را نسبت به HTTP/1.1 اثبات میکند، مشاهده کنید.
- ۴ برابر سریعتر در شبکهی بیسیم یا کابلی (20Mbps)، با میانگین پینگ به سرور ۵۰ میلی ثانیهای
- ۶ برابر سریعتر در شبکهی التیای، با میانگین پینگ به سرور ۹۰ میلی ثانیهای
- ۱۵ برابر سریعتر در شبکهی 3G، با میانگین پینگ به سرور ۱۲۰ میلی ثانیهای
- ۲ برابر سریعتر در شبکهی 2G، با میانگین پینگ به سرور ۴۰۰ میلی ثانیهای
به دلیل محدودیت پهنای باند EDGE که در سرعت ۱۷۰ کیلوبیت بر ثانیه اشباع شده، پروتکل HTTP/2 فقط دو برابر سریعتر از HTTP/1.1 است. در ادامه میتوانید نتیجهی تصویری آزمایش ما را مشاهده کنید. تصاویر از چپ به راست مربوط به نتیجهی آزمایش شبکهی بیسیم (LTE ،(WiFi و 3G است.
در اینجا میتوانید الگویی از درخواست شبکه برای واکشی کاشی تصاویر را مشاهده کنید.
ویژگیهای HTTP/1.1
۱- درخواست فعال واحد، به ازای هر اتصال مبتنیبر پروتکل TCP
۲- شبکهی iOS، حداکثر از ۴ اتصال TCP به سرور و درخواستهای منطقی چندگانه بین آنها پشتیبانی میکند.
از این رو، پردازش حداکثر ۴ درخواست به صورت همزمان در هر لحظه، میتواند باعث به کارگیری اتصال ضعیف شبکه و دو مشکل اصلی زیر شود.
۱- سرور کاملا از درخواست بعدی کاربر تا زمان پاسخگویی و تحویل درخواست قبلی، بیاطلاع خواهد بود.
۲- اگر سرعت پاسخگویی به برخی از درخواستها کند شود، اتصال مربوطه مسدود خواهد شد.
نباید تعداد اتصالهای همزمان بر پایهی پروتکل TCP را افزایش دهید. داشتن بیش از ۵ تا ۷ اتصال مبتنیبر پروتکل TCP به ازای آدرس IP و پورت ترکیبی کلاینت سرور (client-server) انفرادی، ممکن است باعث راهاندازی فیلترهای anti-DDoS در برخی از شرکتهای خدمات دهندهی اینترنتی (ISP) شود.
ویژگیهای HTTP/2
۱- فقط یک اتصال مبتنیبر پروتکل TCP بین خدمات گیرنده (client) و خدمات دهنده (server) برقرار میشود.
۲- درخواستهای منطقی چندگانهی مبتنیبر پروتکل HTTP/2، از طریق اتصال واحد فراهم است.
۳- پروتکل دودویی (Binary) همراه با فشرهسازی موثر هدر باعث افزایش سرعت بارگذاری میشود.
هنگامی که سیستم عامل iOS اقدام به واکشی ۲۰۰ تکه تصویر میکند، به جای درخواست ترتیبی این کاشیها، تحت پروتکل HTTP/2 قادر به درخواست و واکشی همزمان آنها در یک لحظه خواهد بود.
اولویتبندی و باطلسازی
قبل از توصیف اصطلاح اولویتبندی و باطلسازی، بهتر است ابتدا به تفاوت میان رندر کاشی تصویر توجه کنید.
- درخواستهای مبتنیبر پروتکل HTTP/1.1، به طور طبیعی یک به یک واکشی میشوند.
- درخواستهای مبتنیبر پروتکل HTTP/2، در الگوی به ظاهر تصادفی واکشی شده و همهی آنها از اولویت یکسانی بهرهمند هستند.
پروتکل HTTP/2 قابلیتهای جدیدی را تحت عنوان اولویتبندی و باطلسازی تعریف کرده است؛ به طوری که اگر یک درخواست نیازمند رندر پیش نمایشی از یک گالری پویا باشد، میتواند تصاویر اولویت بالا را برای نمایش اولیه درخواست کرده و سپس تصاویر پایین فهرست را درخواست کند. به این معنی که در صورت جابهجا شدن کاربر از روی آن تصویر یا مرور فهرست به طرف پایین، دانلود تصویر درخواست شده و دارای اولویت بالای قبلی باطل خواهد شد.
با این حال، به نظر میرسد که اولویتبندی هنوز به وسیلهی کلاس NSUrlSession که یک API برای دانلود فراهم میکند، در سیستم عامل iOS 9.2 آزمایش شده، پشتیبانی نمیشود.
دلیل اینکه HTTP/2 در فرآیند انتقال، به طور قابل توجهی عملکرد بهتری نسبت به HTTP/1.1 دارد، سربارهای (overhead) مطرح شده به وسیلهی تاخیر اتصال (link latency) است.
با وجود بهرهبرداری جهانی از فناوری LTE، هنوز هم برخی از کاربران در سراسر جهان درصد قابل توجهی از خدمات شبکههای 3G یا 2G با تاخیر بالا را در مقایسه با شبکهی LTE دریافت میکنند. در ادامه میتوانید درصد استفاده از شبکهی LTE در مقایسه با شبکههای 3G و 2G را به تفکیک هر کشور مقایسه کنید. این آمار به وسیلهی وبسایت OpenSignal گزارش شده است.
نظر شما دربارهی پروتکل HTTP/2 چیست؟ آیا دنیای وب دگرگون خواهد شد؟
نظرات