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